RICM5 2017-2018 - SmartMove: Difference between revisions
No edit summary |
|||
(20 intermediate revisions by 4 users not shown) | |||
Line 81: | Line 81: | ||
**Il est satisfait de nos avancées (communication téléphone/SensorTag, avancement dans le machine learning, etc) |
**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 |
*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. |
*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 |
* Préparation de la soutenance |
||
* Fusion de tous nos applications de développement en un démonstrateur pour 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 587: | Line 592: | ||
*Travail sur la gestion des entraînements (création d'entrainement et sauvegarde) |
*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;" | |
||
*Recherche de solution alternative pour la connexion au [http://www.ti.com/ww/en/wireless_connectivity/sensortag/ SensorTAG] avec gestion de multi serveur GATT |
*Recherche de solution alternative pour la connexion au [http://www.ti.com/ww/en/wireless_connectivity/sensortag/ SensorTAG] avec gestion de multi serveur GATT |
||
Line 597: | Line 603: | ||
|<!-- 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" | |
||
⚫ | |||
|<!-- 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 |
*Beaucoup de ressources disponibles sur le net fonctionnement en fait avec un Gateway Hardware propriétaire, elles sont donc toutes inutilisables dans notre cas |
||
Line 651: | Line 656: | ||
|} |
|} |
||
==Sprint 6 |
==Sprint 6 == |
||
{|class="wikitable alternance" |
{|class="wikitable alternance" |
||
|+ |
|+ |
||
Line 670: | 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 |
*MaJ Air |
||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
Line 693: | 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. |
*Réunion avec Clément. |
||
Line 718: | Line 725: | ||
*Recherche sur les caractéristiques bluetooth du sensorTag et leur utilisations |
*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. |
* 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. |
||
Line 738: | Line 746: | ||
* Excusé (TOEIC) |
* Excusé (TOEIC) |
||
|<!-- Timothée --> style="width: 280px;" | |
|<!-- Timothée --> style="width: 280px;" | |
||
* Papier et |
* 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. |
* 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. |
||
Line 761: | Line 770: | ||
* Développement d'une API pour le contrôle du sensorTag une fois connecté. |
* 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. |
* 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 775: | Line 785: | ||
|} |
|} |
||
==Sprint 7 ( |
==Sprint 7 (en cours)== |
||
{|class="wikitable alternance" |
{|class="wikitable alternance" |
||
|+ |
|+ |
||
Line 795: | 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. |
* 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. |
* 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. |
* Test d'un très grand nombre de settings : retenu analyse d'une fenêtre de 2 secondes, glissante de 500ms en 500ms. |
||
Line 807: | 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" | |
||
Line 818: | 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 |
* Cours de gestion de projet |
||
* support de Clément pour l'implémentation l'API sur la base de l'appli. |
* 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 832: | Line 854: | ||
|<!-- 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 840: | 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 850: | 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 858: | 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 |
|||
|- |
|- |
||
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 |
|