RICM5 2017-2018 - SmartMove: Difference between revisions
(101 intermediate revisions by 4 users not shown) | |||
Line 39: | Line 39: | ||
=SCRUM= |
=SCRUM= |
||
Une liste plus actualisé des tâches est disponible sur Trello : https://trello.com/b/RVfoU3gl/smart-move-first-tasks |
|||
==Sprint 1 - Du 29/01/18 au 04/02/18 == |
==Sprint 1 - Du 29/01/18 au 04/02/18 == |
||
Line 52: | Line 54: | ||
==Sprint 2 - Du 05/02/18 au 11/02/18 == |
==Sprint 2 - Du 05/02/18 au 11/02/18 == |
||
*Définition des taches et des deadline sur Trello |
|||
*Première expérimentation avec différents modèles de machine learning. Nous faisons face à de très nombreuses contraintes comparé aux modèles que nous trouvons sur le net comme : |
|||
** Nos données sont un flux continu et non un simple échantillon borné à analyser |
|||
** Nous recevons des données de plusieurs capteurs, la synchronisation doit être quasi parfaite pour que les données est un sens. |
|||
**Nous avons découvert des applications d'enregistrement de mouvement fonctionnant sur Android. https://blog.lemberg.co.uk/motion-gesture-detection-using-tensorflow-android |
|||
* Choix des technologies pour la communication entre le téléphone et les Arduinos -> BLE |
|||
* Cours de gestion de projet |
|||
==Sprint 3 - Du 12/02/18 au 18/02/18 == |
==Sprint 3 - Du 12/02/18 au 18/02/18 == |
||
* Soutenance le mercredi 14/02 de 10h30-11h |
* Soutenance de mi parcours le mercredi 14/02 de 10h30-11h avec Didier Donsez et Bernard Tourancheau |
||
** Ils sont satisfait de la direction que prend le projet |
|||
** Didier nous propose de remplacer les Arduino par des SensorTag qui seraient plus adaptés à nos besoins. |
|||
*Expérimentations avec un modèle de machine learning prometteur (LSTP Long short term memory) https://github.com/SmartMove-PolytechGrenoble/TensorFlow-on-Android-for-Human-Activity-Recognition-with-LSTMs |
|||
*Expérimentations d'entrainement de modèle sur nos machines -> problème de config sur GPU |
|||
*Cours de gestion de projet |
|||
==Sprint 4 - Du 19/02/18 au 25/02/18 == |
==Sprint 4 - Du 19/02/18 au 25/02/18 == |
||
Line 60: | Line 74: | ||
==Sprint 5 - Du 26/02/18 au 04/03/18 == |
==Sprint 5 - Du 26/02/18 au 04/03/18 == |
||
*Premières expérimentations avec le SensorTag malgré les problèmes de piles. |
|||
*Travail sur la gestion des entraînements (au sens, action que veut reconnaître l'utilisateur) |
|||
*Cours de gestion des risques en projets |
|||
*Réunion 1 de suivi avec Didier |
|||
**Il est satisfait de nos avancées (communication téléphone/SensorTag, avancement dans le machine learning, etc) |
|||
==Sprint 6 - Du 05/03/18 au 11/03/18 == |
==Sprint 6 - Du 05/03/18 au 11/03/18 == |
||
*Réunion 2 de suivi avec Didier |
|||
*Notre modèle est inspiré de : https://drive.google.com/file/d/1u0eh7JCj6yRZqln7Md-eDHJgHbaDcWRC/view?usp=sharing. Nous sommes partis de ce travail et avons modifié le code pour correspondre à nos problématiques / données. |
|||
* Enregistrement de données dans diverses positions |
|||
* Améliorations du modèle |
|||
* Début d'intégration des différentes branches |
|||
==Sprint 7 - Du 12/03/18 au 18/03/18 == |
==Sprint 7 - Du 12/03/18 au 18/03/18 (en cours) == |
||
* Soutenance le jeudi 15/03 de 9h-10h |
* Soutenance le jeudi 15/03 de 9h-10h |
||
* Préparation de la soutenance |
|||
* Fusion de tous nos applications de développement en un démonstrateur pour la soutenance |
|||
* Enregistrement de données dans diverses positions |
|||
* Essais de différents modèle et de différents combinaisons de mouvements |
|||
=Journal= |
=Journal= |
||
Line 89: | Line 118: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Récupération du matériel au fablab (Arduino 101) |
|||
*Tentative d'un flash d'un exemple sur la carte |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Lecture et compréhension des divers documents produits durant le S9 par les 3 autres membres du projet, un gros travail de conception ayant déjà été effectué en amont de mon arrivée |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
|- |
|- |
||
Line 97: | Line 129: | ||
| rowspan="1" | <span style="color:blue">Remarques</span> |
| rowspan="1" | <span style="color:blue">Remarques</span> |
||
|<!-- Anthony --> style="width: 280px;" style="color:purple" | |
|<!-- Anthony --> style="width: 280px;" style="color:purple" | |
||
*Impossible de faire marcher quelque chose sur la carte pourtant elle est détecté |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Confrontation de l'idée que m'ont donné les documents de conception avec la vision des autres membres afin d'assurer une divergence de trajectoire aussi faible que possible |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 108: | Line 142: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Tentative d'un flash d'un exemple sur la carte |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*La technologie de communication entre les cartes et le téléphone s'effectuera sur la base du [https://developer.android.com/guide/topics/connectivity/bluetooth-le.html Bluetooth BLE]. Ayant déjà travaillé sur cette technologie sur le projet [http://air.imag.fr/index.php/UltraTeam UltraTeam], je ferai cette partie. |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
|- |
|- |
||
Line 116: | Line 152: | ||
| rowspan="1" | <span style="color:blue">Remarques</span> |
| rowspan="1" | <span style="color:blue">Remarques</span> |
||
|<!-- Anthony --> style="width: 280px;" style="color:purple" | |
|<!-- Anthony --> style="width: 280px;" style="color:purple" | |
||
*Le bootloader de la carte est broken et ne fonctionne depuis Linux, Avec Windows Timothée y arrive facilement |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Le BLE est une technologie qui m'avait donné beaucoup de tord durant le précédent projet et il m'intéresse de m'y remettre dessus. le nombre de ressources disponibles est assez peu limité et les ressources existantes ont généralement été conçues pour du HardWare spécial |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 130: | Line 168: | ||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Cours de management de projets innovants - 4h |
*Cours de management de projets innovants - 4h |
||
*Analyse du code d'[https://github.com/ultratrail/mobapp2 UltraTeam] pour voir ce qui est récupérable du travail déjà effectué dans le cadre du projet antérieur |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
*Cours de management de projets innovants - 4h |
*Cours de management de projets innovants - 4h |
||
*Etude problématique projet |
|||
*Formation tensorflow : tuto simple, structure du code et concepts de base |
|||
|- |
|- |
||
Line 139: | Line 180: | ||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Je ne récupérerai que peu de code du précédent projet en raison du nombre important de bricolage. J'ai décidé de me rebaser quasi-exclusivement sur le [https://github.com/googlesamples/android-BluetoothLeGatt GoogleSample BleGATT] |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple"| |
|<!-- Vincent --> style="width: 280px;" style="color:purple"| |
||
|- |
|- |
||
|- |
|- |
||
| rowspan="2" | <span style="color:green"> |
| rowspan="2" | <span style="color:green">Vendredi 02/02/18</span> |
||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Tentative de flash sur l’Arduino récupéré par Anthony au fablab, finalement réussi sur Windows. |
|||
*Essai de l'exemple "HearthRate Monitor" avec connexion Bluetooth. |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Création d'un [https://github.com/SmartMove-PolytechGrenoble/SmartMove dépot Github] se basant sur un Fork du Google Sample et qui aura ensuite pour but d'être intégré dans l'application finale créée par les autres. |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
*Continuation de la formation TF Visionnage vidéos, notamment conférence sur deep learning adapté à Tensorflow |
|||
|- |
|- |
||
Line 155: | Line 201: | ||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
*Travail avec Clément pour faire fonctionner l'exemple en BLE sur son début d'appli. finalement fonctionnel en demandant l'utilisation du GPS sur android (Comme le requière la spécification BLE) |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Le GoogleSample se base sur un design [https://developer.android.com/reference/android/support/v7/app/AppCompatActivity.html AppCompat], ce qui n'est pas pratique pour l'intégration. Je me souviens avoir eu le même problème sur [http://air.imag.fr/index.php/UltraTeam UltraTeam]. Je le gèrerai cependant de façon opposée -> Au lieu de passer toute mon application sur le même design, je vais transformer le code pour l'utiliser sans ce Framework. |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple"| |
|<!-- Vincent --> style="width: 280px;" style="color:purple"| |
||
|- |
|- |
||
Line 181: | Line 230: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Travail sur le AIR |
|||
*Export des taches backlog sur Trello |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Début du code Arduino en partant de l'exemple "HeartRate Monitor" |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*L'APK fournie par un clone du [https://github.com/googlesamples/android-BluetoothLeGatt GoogleSample BleGATT] ne trouve pas toujours les périphériques BLE environnants. Début des investigations |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
|- |
|- |
||
Line 190: | Line 243: | ||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
*Pas mal de difficultés lors du test, en raison de difficultés de debugging sur l'Arduino. |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*L'application fonctionne sans soucis sur les plus anciennes versions d'Android mais semble avoir des soucis à partir d'une certaine version du SDK toujours indéterminée. |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
*Étude des problématiques propres à notre projet : Stream de data, Dynamic Time |
|||
|- |
|- |
||
Line 200: | Line 256: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Étude avec Vincent d'une application utilisant de la détection de mouvement Tensor Flow sur Android. https://blog.lemberg.co.uk/motion-gesture-detection-using-tensorflow-android |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Avancement du code Arduino. |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Résolution du bug. Il faut depuis le SDK 23 une autorisation de localisation pour faire fonctionner le Bluetooth. [https://stackoverflow.com/questions/32708374/bluetooth-le-scanfilters-dont-work-on-android-m Problème et solution détaillée] |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
*Etude d’un code de reconnaissance de mouvement tensorflow Android, + test, comprendre pour pouvoir modifier en conséquence |
|||
|- |
|- |
||
Line 209: | Line 269: | ||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
*Résolution des problèmes rencontrés la veille (Mauvais initialisation du module gérant les capteurs), puis travail sur l'envoie des données par blutooth. |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*le problème a également fait l'objet de plusieurs [https://github.com/googlesamples/android-BluetoothLeGatt/pulls Pull Requests] sur le dépo. Certaines ont été validées mais aucune mergées. |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 217: | Line 279: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
* Cours de management de projets innovants - 4h |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Cours de management de projets innovants - 4h |
|||
*Finalisation du code arduino pour le moment. |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Cours de management de projets innovants - 4h |
|||
*Début du travail d'intégration du [https://github.com/googlesamples/android-BluetoothLeGatt GoogleSample BleGATT] en tant qu'activité secondaire |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
*Cours de management de projets innovants - 4h |
|||
*Étude approfondie des modèles : il faut sûrement utiliser un LSTM |
|||
|- |
|- |
||
Line 228: | Line 296: | ||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
*Recherches sur les UUID (pour l'arduino). |
|||
*Envoie des valeurs depuis l'arduino sous forme binaire (nécessite de séparer les octets des ints) |
|||
*Mise sur Git du code arduino. |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*La forme choisie est celle d'un [https://stackoverflow.com/questions/1979369/android-activity-as-a-dialog Dialog Activity] pour avoir une interaction ergonomique et user friendly |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 237: | Line 309: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Diverses expérimentations avec le MotionGesture. Installation de Gesture Manager sur mon téléphone et record de quelques mouvemnts sur un seul capteur (ceux du téléphone). |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Application fonctionnelle de façon satisfaisante. Cependant, elle ne gère qu'un serveur [https://www.bluetooth.com/specifications/gatt/generic-attributes-overview BLE GATT] là où un par capteur serait nécessaire. Début des modifications en ce sens. |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
|- |
|- |
||
Line 247: | Line 321: | ||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Beaucoup de travail est reste à effectuer afin de permettre la gestion de plusieurs serveurs en simultanée quand l'application de base ne le gère pas du tout. Une meilleure conception aurait réduit l'impact de ce problème |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 254: | Line 329: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Etude de l'appli MotionGestureDemo https://github.com/ryanchyshyn/motion_gestures_detection/tree/master/MotionGesturesDemo |
|||
*L’intérêt de cette appli est qu'elle exécute un modèle Tensorflow. Le code nécessaire a cela est externalisé dans une librairie que nous pourrions éventuellement réutiliser |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Hackathlon |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Travail de transition pour une gestion multi-serveurs. Modification des structures de données et des Callbacks. |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
*Abandon du code trouvé précédemment car le modèle ne nous correspond pas. Reprise d’un code utilisant un modèle LSTM en Tensorflow, qui reconnait l’activité d’une personne (assis, debout, en train de marcher, montant des marches…) |
|||
|- |
|- |
||
Line 289: | Line 370: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Recherche de modèle avec Vincent. Expérimentation avec un modèle LSTM : https://medium.com/@curiousily/human-activity-recognition-using-lstms-on-android-tensorflow-for-hackers-part-vi-492da5adef64 |
|||
*Prise en main de ce code |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
* Etudes du protocole BLE pour l'intégration à l'application android |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Modification de la [https://developer.android.com/reference/android/app/ListActivity.html ListActivity] pour avoir une sélection [https://www.101apps.co.za/articles/making-a-list-coding-multiple-choice-list-dialogs.html Multi Choice] |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Déchiffrage de codes utilisant un modèle LSTM : cela semble être un bon modèle pour notre cas, à voir les résultats pour des moves assez court. |
|||
|- |
|- |
||
Line 299: | Line 387: | ||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Cela crée un océan de problèmes de logique en raison de la modification a la volée de la liste lors d'une découverte et du clic sur le bouton menu "Scan/Stop". Après beaucoup de travail sur le Sample je me permet de dire que son design est plus que discutable |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 306: | Line 395: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Fork du modèle LSTM : https://github.com/SmartMove-PolytechGrenoble/TensorFlow-on-Android-for-Human-Activity-Recognition-with-LSTMs |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
* Poursuite de l'étude BLE. |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Suite de la veille |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Modifications du code pour correspondre à notre formattage de données + modification du prétraitement des données |
|||
|- |
|- |
||
Line 324: | Line 417: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Conception de la gestion des entraînements. Entraînements au sens "suite d'activités" que l'utilisateur peut faire et vouloir détecter |
|||
*Soutenance mi parcours |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Soutenance mi parcours |
|||
*Prévision de l'abandon de l'utilisation d'arduinos pour l'utilisation de sensorTags. |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Préparation de la soutenance |
|||
*Soutenance mi parcours |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
*Soutenance mi parcours |
|||
* Résolution problèmes inconnus Tensorflow |
|||
|- |
|- |
||
Line 341: | Line 442: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Cours gestion |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Cours gestion |
|||
*Découverte sensorTag |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Absence jusqu'aux vacances pour cause de déménagement |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
*Cours gestion |
|||
* Test d'entraîner le modèle avec des jeux de données : impossible à faire tourner hardware trop faible. |
|||
|- |
|- |
||
Line 358: | Line 465: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
* Essai tensor flow sur mon CPU |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Faire tourner Tensorflow sur GPU : fonctionne mieux. |
|||
|- |
|- |
||
Line 373: | Line 482: | ||
|} |
|} |
||
==Sprint 4== |
==Sprint 4 (Vacances) == |
||
{|class="wikitable alternance" |
{|class="wikitable alternance" |
||
|+ |
|+ |
||
Line 400: | Line 509: | ||
* [...] |
* [...] |
||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Quelques tests sur SensorTag |
|||
* [...] |
|||
|- |
|- |
||
Line 436: | Line 545: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Cours de gestion |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Cours de gestion |
|||
*Analyse de l'application Android sensorTag officiel (openSource) |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Cours de gestion |
|||
*Changement de trajectoire du projet, nous utiliserons désormais des [http://www.ti.com/ww/en/wireless_connectivity/sensortag/ SensorTAG]. Début d'analyse des ressources disponibles afin de voir s'il n'est pas possible d'utiliser un code facile à intégrer |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
*Cours de gestion |
|||
* Début modification du code Android d'évalutation : comptabilisation, du nombre de mouvement, chronométrage. |
|||
|- |
|- |
||
Line 446: | Line 562: | ||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Solution propriétaire à TI analysée : [http://www.ti.com/tool/ble-stack?DCMP=wbu-blestack&HQS=blestack BLE Stack] |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 453: | Line 570: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Travail sur la gestion des entraînements (création d'entrainement et sauvegarde) |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*La solution fonctionne parfaitement mais ne gère pas le Multi Server GATT. Code trop complexe pour modifications et intégration. Abandon de la solution |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Début modification code enregistrement data. Objectif : labéliser, choisir librement les limites. |
|||
|- |
|- |
||
Line 470: | Line 590: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Travail sur la gestion des entraînements (création d'entrainement et sauvegarde) |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Recherche de stage |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Recherche de solution alternative pour la connexion au [http://www.ti.com/ww/en/wireless_connectivity/sensortag/ SensorTAG] avec gestion de multi serveur GATT |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Ajout du support du gyroscope |
|||
|- |
|- |
||
Line 480: | Line 604: | ||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Beaucoup de ressources disponibles sur le net fonctionnement en fait avec un Gateway Hardware propriétaire, elles sont donc toutes inutilisables dans notre cas |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 487: | Line 612: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Travail sur la gestion des entraînements (Visualisation) |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Découverte du service [https://github.com/devicehive/android-ble Android BLE] de [https://devicehive.com/ DeviceHive] qui se sert d'un téléphone Android comme Gateway entre plusieurs périphériques BLE et un serveur, répondant à toutes nos contraintes. Exploration et mise en place de cette solution |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Entraînement avec nos propres données : il faut beaucoup de données, avec peu de données la précision est vraiment mauvaise. |
|||
|- |
|- |
||
Line 497: | Line 625: | ||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Solution un peu complexe d'utilisation et qui ne pourra pas être inclue dans une version en production. Cependant très pratique pour acquérir des jeux de données lors du développement |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 504: | Line 633: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
*Travail sur la gestion des entraînements (Visualisation) |
|||
* Réunion 2 |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
* Réunion 2 |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
* Solution de [https://devicehive.com/ DeviceHive] fonctionnelle, et découverte d'une nouvelle problématique : La fréquence de notifications des données est de 300 ms, bien trop lent. Pourtant, les [http://www.ti.com/lit/sl/szzy004a/szzy004a.pdf spécifications] de la carte indiquent une fréquence minimale de 100 ms (il est d'ailleurs [https://e2e.ti.com/support/wireless_connectivity/bluetooth_low_energy/f/538/t/385413 apparemment] de flasher l'appareil pour augmenter la fréquence) |
|||
* Réunion 2 |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Réunion 2 |
|||
* Récolte de plus de données. |
|||
|- |
|- |
||
Line 514: | Line 650: | ||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Le problème de fréquence est donc soit lié à DeviceHive soit au téléphone Android. Dans l'immédiat, abandon de la solution DeviceHive pour avoir une version fonctionnelle aussi vite que possible |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 519: | Line 656: | ||
|} |
|} |
||
==Sprint 6== |
==Sprint 6 == |
||
{|class="wikitable alternance" |
{|class="wikitable alternance" |
||
|+ |
|+ |
||
Line 538: | Line 675: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
* Expérimentations avec des jeux de données difféerents |
|||
*MaJ Air |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
Analyse code BLE Android (celui de Clément) |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*L'[https://github.com/SmartMove-PolytechGrenoble/motion_gestures_detection/tree/dev_mesh application] développée par Vincent est suffisamment aboutie pour accepter une intégration des services Bluetooth. Début de cette intégration |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Modif learning pour utiliser les nouvelles infos capteurs : gyroscope + accél, Modifications formattage des données (Python) |
|||
|- |
|- |
||
Line 548: | Line 690: | ||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Cela demandera tout de même beaucoup de travail étant donné les problèmes de clone et d'intégration inhérents à Android. |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 556: | Line 699: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
* Refactoring de la gestion des entraînements pour prendre dynamiquement en compte le nombre de mouvements |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Réunion avec Clément. |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
*Réunion avec Timothée afin de se mettre d'accord pour permettre une parallélisation du travail. |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Le vecteur angulaire n'est pas l'information qu'il nous faut mais plutôt la gravité : changement du code, et reprise de la récupération des données. |
|||
|- |
|- |
||
Line 566: | Line 713: | ||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
*Je travaillerai sur la partie connexion Bluetooth et lui sur la partie GATT (découverte des services et caractéristiques, inscription et lecture des notifications) |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 575: | Line 723: | ||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
*Recherche sur les caractéristiques bluetooth du sensorTag et leur utilisations |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
* Intégration de la connexion a l'appli de récupération des données |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* En fait différentes variable pour l'apprentissage n'avaient pas été touchées, il est possible d'avoir de bons résultats avec peu de données. |
|||
* Reprise des tests : très bonne précision avec seulement 40 secondes d'entraînement : les mouvements marcher et sauter sont distingués avec une très bonne précision en ligne droite. |
|||
|- |
|- |
||
Line 592: | Line 744: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
* Excusé (TOEIC) |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
* Papier et téléphone pour le stage. |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
* Suite. Connexion réussie. |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Rectification après tests : il faut bien l'accélération angulaire, je n'ai pas le capteur sur mon téléphone, je reste sur des infos accéléromètre et c'est précis. |
|||
* Multiples essais en faisant varier les variables pour l'apprentissage tensorflow. |
|||
* Essais et modification du code pour pouvoir faire descendre le nombre de valeur en input assez bas : reconnaître les mouvements de toute durée. |
|||
|- |
|- |
||
Line 610: | Line 768: | ||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
* Développement d'une API pour le contrôle du sensorTag une fois connecté. |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
* Suite. Clean du code et de la connexion. |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Tests avec gyroscope (j'ai utilisé le téléphone de Timothée car j'ai pas de gyroscope). Les résultats sont moins bons qu'avec seulement l'accéléromètre. Il faut plus de training. Je cherche comment donner moins d'importance au gyroscope. |
|||
|- |
|- |
||
Line 624: | Line 785: | ||
|} |
|} |
||
==Sprint 7== |
==Sprint 7 (en cours)== |
||
{|class="wikitable alternance" |
{|class="wikitable alternance" |
||
|+ |
|+ |
||
Line 644: | Line 805: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
* Intégration de la gestion des entrainements |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
* Suite développement de l'API pour le sensorTag, avancées grâce à une doc pertinente. |
|||
* Obtention de valeur de l'accéléromètre et du gyroscope du sensorTag. |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
* Rien |
|||
* Rien |
|||
* Rien |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Test d'un très grand nombre de settings : retenu analyse d'une fenêtre de 2 secondes, glissante de 500ms en 500ms. |
|||
* Code Python (learning) et code Android (utilisant le modèle) rendus totalement scalable avec quelques tableaux en dur à remplir selon nos besoins (capteurs en entrée, moves en sortie, moves à compter...) --> l'entraînement / l'UI est généré en conséquence . |
|||
|- |
|- |
||
Line 652: | Line 821: | ||
| rowspan="1" | <span style="color:blue">Remarques</span> |
| rowspan="1" | <span style="color:blue">Remarques</span> |
||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
||
* Intégration de la gestion des entrainements |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
* Il faut que je modifie le code pour éviter certains doublons, et éviter des événements incompatibles à la suite. Un autre point : ajouter un deuxième seuil de validation (autre que la probabilité) : assurer une proba > 0.98 pendant deux avancées de la fenêtre par exemple, je pense que cela va donner des résultats robustes. Un gros problème de notre projet est qu'on est en Open set : nos classes ne représentent pas tous les mouvements possibles (c'est un domaine de recherche très répandu actuellement). On a alors du bruit. On va essayer d'utiliser la méthode simple : enregistrer du bruit, et des moves qui n'ont aucun sens. |
|||
|- |
|- |
||
Line 662: | Line 833: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
* Cours de gestion de projet |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
* Cours de gestion de projet |
|||
* support de Clément pour l'implémentation l'API sur la base de l'appli. |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
* Cours de gestion de projet |
|||
* Mise en relation de la connexion avec a partie de Timothée, résolution de problèmes |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* De nombreux tweaks par rapport à la problématique : être temps réel/précision/pas de faux positif. |
|||
* Réengistrement pour la 70000 fois de données mais ce coup-ci au niveau de la jambe avec et sans gyroscope (j'ai mal aux jambes). |
|||
* Ajout de plus d'option pour ajuster la validation d'un move : un move peut être plus ou moins dur à valider. |
|||
* Cours de gestion de projet |
|||
|- |
|- |
||
Line 671: | Line 851: | ||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
* Problème de fréquence d’échantillonnage, la caractéristique BLE prévu a cette effet ne semble pas avoir d'effet. |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
* L'ajout du gyroscope (on passe alors à 6 variables) fait exploser la complexité du modèle il prend un temps très long à être entraîné (normal...) |
|||
* Retour à accéléromètre seul. |
|||
|- |
|- |
||
Line 681: | Line 864: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
* Fin d'intégration de la gestion des entrainements |
|||
* Enregistrement de jeu de données |
|||
* Diapo |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
* Tentative d'implémentation du SensorTag sur l'autre application (???) de gestion des entrainements |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Merge avec le code d'entraînement d'Antho. |
|||
* Réengistrement avec Anthony de plein de données (tout au niveau de la ceinture), avec 10Mo de données on devrait être assez précis. |
|||
* Tweak du modèle encore et encore. |
|||
|- |
|- |
||
Line 691: | Line 881: | ||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
||
* Échec |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
||
|- |
|- |
||
Line 699: | Line 890: | ||
| rowspan="1" | <span style="color:blue">Tâches</span> |
| rowspan="1" | <span style="color:blue">Tâches</span> |
||
|<!-- Anthony --> style="width: 280px;" | |
|<!-- Anthony --> style="width: 280px;" | |
||
* Soutenance |
|||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
* Soutenance |
|||
|<!-- Clément --> style="width: 280px;" | |
|<!-- Clément --> style="width: 280px;" | |
||
* Matin : Soutenance |
|||
* Apres-Midi : Partir le plus loin possible et ne jamais revenir |
|||
|<!-- Vincent --> style="width: 280px;" | |
|<!-- Vincent --> style="width: 280px;" | |
||
* Soutenance |
|||
|- |
|- |
||
Line 717: | Line 912: | ||
|} |
|} |
||
= Journal = |
|||
{|class="wikitable alternance" |
|||
|+ |
|||
|- |
|||
| |
|||
!scope="col"| Date |
|||
!scope="col"| GEOURJON Anthony |
|||
!scope="col"| LEMAIRE Timothée |
|||
!scope="col"| ROUQUIER Clément |
|||
!scope="col"| TURRIN Vincent |
|||
|- |
|||
| colspan="6" style="text-align: center; background-color:green;"| <span style="color:white">SPRINT X</span> |
|||
|- !scope="col"| Date |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Lundi */*/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Mardi */*/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Mercredi */*/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
* Cours de management de projets innovants - 4h |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
*Cours de management de projets innovants - 4h |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
*Cours de management de projets innovants - 4h |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
*Cours de management de projets innovants - 4h |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple"| |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Vendredi */*/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple"| |
|||
|- |
|||
{|class="wikitable alternance" |
|||
|+ |
|||
|- |
|||
| |
|||
!scope="col"| Date |
|||
!scope="col"| GEOURJON Anthony |
|||
!scope="col"| LEMAIRE Timothée |
|||
!scope="col"| ROUQUIER Clément |
|||
!scope="col"| TURRIN Vincent |
|||
|- |
|||
| colspan="6" style="text-align: center; background-color:green;"| <span style="color:white">SPRINT 1</span> |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Lundi 29/01/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Mardi 30/01/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Mercredi 31/01/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
* Cours de management de projets innovants - 4h |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
*Cours de management de projets innovants - 4h |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
*Cours de management de projets innovants - 4h |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
* Cours de management de projets innovants - 4h |
|||
* Etude problématique projet |
|||
* Formation tensorflow : tuto simple, structure du code et concepts de base |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple"| |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Vendredi 02/02/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
* Tentative de flash sur l’Arduino récupéré par Anthony au fablab, finalement réussi sur Windows. |
|||
* Essai de l'exemple "HearthRate Monitor" avec connexion Bluetooth. |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
* Continuation de la formation TF |
|||
* Visionnage vidéos, notamment conférence sur deep learning adapté à Tensorflow |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
* Travail avec Clément pour faire fonctionner l'exemple en BLE sur son début d'appli. finalement fonctionnel en demandant l'utilisation du GPS sur android (Comme le requière la spécification BLE). |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple"| |
|||
|- |
|||
{|class="wikitable alternance" |
|||
|+ |
|||
|- |
|||
| |
|||
!scope="col"| Date |
|||
!scope="col"| GEOURJON Anthony |
|||
!scope="col"| LEMAIRE Timothée |
|||
!scope="col"| ROUQUIER Clément |
|||
!scope="col"| TURRIN Vincent |
|||
|- |
|||
| colspan="6" style="text-align: center; background-color:green;"| <span style="color:white">SPRINT 2</span> |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Lundi 05/02/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
* Début du code Arduino en partant de l'exemple "HeartRate Monitor" |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
* Étude des problématiques propres à notre projet : Stream de data, Dynamic Time |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|||
* Travail sur le AIR |
|||
* Export des taches sur Trello |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
* Pas mal de difficultés lors du test, en raison de difficultés de debugging sur l'Arduino. |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Mardi 06/02/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
* Avancement du code Arduino. |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
* Etude d’un code de reconnaissance de mouvement tensorflow Android, + test, comprendre pour pouvoir modifier en conséquence |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
* Résolution des problèmes rencontrés la veille (Mauvais initialisation du module gérant les capteurs), puis travail sur l'envoie des données par blutooth. |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple" | |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Mercredi 07/02/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
* Cours de management de projets innovants - 4h |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
*Cours de management de projets innovants - 4h |
|||
* Finalisation du code arduino pour le moment. |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
*Cours de management de projets innovants - 4h |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
* Cours de management de projets innovants - 4h |
|||
* Étude approfondie des modèles : il faut sûrement utiliser un LSTM |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
* Recherches sur les UUID (pour l'arduino). |
|||
* Envoie des valeurs depuis l'arduino sous forme binaire (nécessite de séparer les octets des ints) |
|||
* Mise sur Git du code arduino. |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple"| |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Tâches</span> |
|||
| rowspan="2" | <span style="color:blue">Jeudi 08/02/18</span> |
|||
|<!-- Anthony --> style="width: 280px;" | |
|||
|<!-- Timothée --> style="width: 280px;" | |
|||
* Hackathlon |
|||
|<!-- Clément --> style="width: 280px;" | |
|||
|<!-- Vincent --> style="width: 280px;" | |
|||
* Abandon du code trouvé précédemment car le modèle ne nous correspond pas. Reprise d’un code utilisant un modèle LSTM en Tensorflow, qui reconnait l’activité d’une personne (assis, debout, en train de marcher, montant des marches…) |
|||
|- |
|||
|- |
|||
| rowspan="1" | <span style="color:blue">Remarques</span> |
|||
|<!-- Anthony --> style="width: 280px;" style="color:purple"| |
|||
|<!-- Timothée --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Clément --> style="width: 280px;" style="color:purple" | |
|||
|<!-- Vincent --> style="width: 280px;" style="color:purple"| |
|||
|- |
Latest revision as of 07:50, 15 March 2018
Smart Move
Smartmove est un ambitieux projet imaginé par quatre étudiants de Polytech Grenoble. Smartmove est une approche nouvelle du sport avec l'IoT et l'apprentissage machine.
Équipe du projet
Membre | Rôles |
---|---|
Anthony Geourjon | Chef de projet |
Timothée Lemaire | Responsable hardware (black belt thinkpad) |
Clément Rouquier | Responsable Dofus |
Vincent Turrin | Batteur |
- Supervisé par : Bernard Tourancheau, Didier Donsez
Abstract
In 2017, two highly innovative domains emerge : the Internet of Things and the Artificial Intelligence and especially the machine learning. These technological advances open new possibilities to imagine new ways to help people. In this project, we present our proposal for the Open IoT challenge 4.0 organized by the Eclipse Foundation. This project is also part of the course of Wireless Sensor Networks given by Prof. Bernard Tourancheau at Polytech Grenoble (Engineering school)
Mots clés
- IoT
- Machine learning,
- Sports
Présentation
Présentation du projet dans le cadre de l'Eclipse IoT challenge : Smartmove
SCRUM
Une liste plus actualisé des tâches est disponible sur Trello : https://trello.com/b/RVfoU3gl/smart-move-first-tasks
Sprint 1 - Du 29/01/18 au 04/02/18
- Définition des rôles
- Mise en place du projet pour tous les membres du groupe(Trello, Github)
- Création de la page AIR pour la tenue de journal
- Prise de contact avec les enseignants concernés
- Début de la phase de conception
- Séance de management de projets innovants
- Rédaction d'une fiche synthetique de présentation du projet
Sprint 2 - Du 05/02/18 au 11/02/18
- Définition des taches et des deadline sur Trello
- Première expérimentation avec différents modèles de machine learning. Nous faisons face à de très nombreuses contraintes comparé aux modèles que nous trouvons sur le net comme :
- Nos données sont un flux continu et non un simple échantillon borné à analyser
- Nous recevons des données de plusieurs capteurs, la synchronisation doit être quasi parfaite pour que les données est un sens.
- Nous avons découvert des applications d'enregistrement de mouvement fonctionnant sur Android. https://blog.lemberg.co.uk/motion-gesture-detection-using-tensorflow-android
- Choix des technologies pour la communication entre le téléphone et les Arduinos -> BLE
- Cours de gestion de projet
Sprint 3 - Du 12/02/18 au 18/02/18
- Soutenance de mi parcours le mercredi 14/02 de 10h30-11h avec Didier Donsez et Bernard Tourancheau
- Ils sont satisfait de la direction que prend le projet
- Didier nous propose de remplacer les Arduino par des SensorTag qui seraient plus adaptés à nos besoins.
- Expérimentations avec un modèle de machine learning prometteur (LSTP Long short term memory) https://github.com/SmartMove-PolytechGrenoble/TensorFlow-on-Android-for-Human-Activity-Recognition-with-LSTMs
- Expérimentations d'entrainement de modèle sur nos machines -> problème de config sur GPU
- Cours de gestion de projet
Sprint 4 - Du 19/02/18 au 25/02/18
Vacances
Sprint 5 - Du 26/02/18 au 04/03/18
- Premières expérimentations avec le SensorTag malgré les problèmes de piles.
- Travail sur la gestion des entraînements (au sens, action que veut reconnaître l'utilisateur)
- Cours de gestion des risques en projets
- Réunion 1 de suivi avec Didier
- Il est satisfait de nos avancées (communication téléphone/SensorTag, avancement dans le machine learning, etc)
Sprint 6 - Du 05/03/18 au 11/03/18
- Réunion 2 de suivi avec Didier
- Notre modèle est inspiré de : https://drive.google.com/file/d/1u0eh7JCj6yRZqln7Md-eDHJgHbaDcWRC/view?usp=sharing. Nous sommes partis de ce travail et avons modifié le code pour correspondre à nos problématiques / données.
- Enregistrement de données dans diverses positions
- Améliorations du modèle
- Début d'intégration des différentes branches
Sprint 7 - Du 12/03/18 au 18/03/18 (en cours)
- Soutenance le jeudi 15/03 de 9h-10h
- Préparation de la soutenance
- Fusion de tous nos applications de développement en un démonstrateur pour la soutenance
- Enregistrement de données dans diverses positions
- Essais de différents modèle et de différents combinaisons de mouvements
Journal
Sprint1
Date | GEOURJON Anthony | LEMAIRE Timothée | ROUQUIER Clément | TURRIN Vincent | |
---|---|---|---|---|---|
SPRINT 1 | |||||
Lundi 29/01/18 | Tâches |
|
|
||
Remarques |
|
|
|||
Mardi 30/01/18 | Tâches |
|
|
||
Remarques |
|
|
|||
Mercredi 31/01/18 | Tâches |
|
|
|
|
Remarques |
|
||||
Vendredi 02/02/18 | Tâches |
|
|
| |
Remarques |
|
|
Sprint 2
Date | GEOURJON Anthony | LEMAIRE Timothée | ROUQUIER Clément | TURRIN Vincent | |
---|---|---|---|---|---|
SPRINT 2 | |||||
Lundi 05/02/18 | Tâches |
|
|
|
|
Remarques |
|
|
| ||
Mardi 06/02/18 | Tâches |
|
|
|
|
Remarques |
|
|
|||
Mercredi 07/02/18 | Tâches |
|
|
|
|
Remarques |
|
|
|||
Jeudi 08/02/18 | Tâches |
|
|
||
Remarques |
|
||||
Vendredi 09/02/18 | Tâches |
|
|
|
|
Remarques |
Sprint 3
Date | GEOURJON Anthony | LEMAIRE Timothée | ROUQUIER Clément | TURRIN Vincent | |
---|---|---|---|---|---|
SPRINT 3 | |||||
Lundi 12/02/18 | Tâches |
|
|
|
|
Remarques |
|
||||
Mardi 13/02/18 | Tâches |
|
|
| |
Remarques | |||||
Mercredi 14/02/18 | Tâches |
|
|
|
|
Remarques | |||||
Jeudi 15/02/18 | Tâches |
|
|
|
|
Remarques | |||||
Vendredi 16/02/18 | Tâches |
|
| ||
Remarques |
Sprint 4 (Vacances)
Date | GEOURJON Anthony | LEMAIRE Timothée | ROUQUIER Clément | TURRIN Vincent | |
---|---|---|---|---|---|
SPRINT 4 | |||||
/!\Vacances/!\ | |||||
Semaine du 19 au 25 février | Tâches |
|
|
|
|
Remarques |
Sprint 5
Date | GEOURJON Anthony | LEMAIRE Timothée | ROUQUIER Clément | TURRIN Vincent | |
---|---|---|---|---|---|
SPRINT 5 | |||||
Lundi 26/02/18 | Tâches |
|
|
|
|
Remarques |
|
||||
Mardi 27/02/18 | Tâches |
|
|
| |
Remarques | |||||
Mercredi 28/02/18 | Tâches |
|
|
|
|
Remarques |
|
||||
Jeudi 01/03/18 | Tâches |
|
|
| |
Remarques |
|
||||
Vendredi 02/03/18 | Tâches |
|
|
|
|
Remarques |
|
Sprint 6
Date | GEOURJON Anthony | LEMAIRE Timothée | ROUQUIER Clément | TURRIN Vincent | |
---|---|---|---|---|---|
SPRINT 6 | |||||
Lundi 05/03/18 | Tâches |
|
Analyse code BLE Android (celui de Clément) |
|
|
Remarques |
|
||||
Mardi 06/03/18 | Tâches |
|
|
|
|
Remarques |
|
||||
Mercredi 07/03/18 | Tâches |
|
|
| |
Remarques | |||||
Jeudi 08/03/18 | Tâches |
|
|
|
|
Remarques | |||||
Vendredi 09/03/18 | Tâches |
|
|
| |
Remarques |
Sprint 7 (en cours)
Date | GEOURJON Anthony | LEMAIRE Timothée | ROUQUIER Clément | TURRIN Vincent | |
---|---|---|---|---|---|
SPRINT 7 | |||||
Lundi 12/03/18 | Tâches |
|
|
|
|
Remarques |
|
| |||
Mardi 13/03/18 | Tâches |
|
|
|
|
Remarques |
|
| |||
Mercredi 14/03/18 | Tâches |
|
|
| |
Remarques |
|
||||
Jeudi 15/03/18 | Tâches |
|
|
|
|
Remarques |
|