Présentation BandAid 2 Assistance à l`errance nocturne et détection
Transcription
Présentation BandAid 2 Assistance à l`errance nocturne et détection
Présentation BandAid 2 Assistance à l’errance nocturne et détection des émotions Michaël Beaulieu Jonathan Gagné Bruno-Pier Touchette Benoit Jeunehomme Plan sommaire Description du contexte d’utilisation du projet • Comparaison entre les données GSR du Biograph Infinity & Microsoft Band Répartition des tâches Architecture de l’application • Client Android et bracelet Microsoft Band • Serveur web Développements à venir Détection des signes précurseurs de la maladie d’Alzheimer Les patients atteints peuvent développer des comportements typiques : • • Agitations nocturnes Perte d’autonomie Le bracelet Microsoft Band permet de lire des capteurs en tout moment pendant qu’il est porté. L’analyse des données est donc possible afin d’intervenir au besoin. Analyse des émotions et assistance dans les cas d’errance nocturne L’objectif du projet est d’exploiter les différents capteurs disponibles du Microsoft Band. • • • • GSR (Résistance galvanique de la peau) et température de la peau : Détecter les fluctuations dans le niveau de stress Fréquence cardiaque et intervalle RR : Analyser le rythme cardiaque du patient Accéléromètre et gyroscope : Détecter les mouvements et positions du patient GPS (Téléphone) : Déterminer la position physique de l’individu Comparaison avec le Biograph Résistance galvanique par secondes • Le Microsoft Band effectue 5 lectures par secondes 600 500 kohms • Résultats comparable • Le Biograph effectue 32 lectures 700 400 300 200 100 0 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 secondes Microsoft Band Biograph Linéaire (Microsoft Band) Linéaire (Biograph) Répartition des tâches • • • • • • • • • Expérimentation avec WUA (2 semaines) Serveur Node.js (3 semaines) Client Web et graphiques temps réel (3 semaines) Service Bluetooth (2 semaines) Refactoring du service Android (4 semaines) Test de compatibilité (2 semaines) Comparaison données GSR et BioGraph (2 semaines) Service de storage de données locales sur Android (3 semaines) Gestion de projet (3 semaines) Obstacles rencontrés Décision des technologies à utiliser au début du projet • WUA (C#) vs Node.js Mises à jour du SDK de Microsoft Capteur GSR Architecture à modifier côté Android Architecture de l’application BandAid Le système est constitué de deux grandes composantes : 1. 2. Application Android communiquant avec le bracelet et son SDK • • • • • Service de gestion du bracelet Enveloppe simplifiant les communications avec le SDK de Microsoft Service d’entreposage des données localement Service d’émission des données vers le serveur distant Activités de gestion des capteurs et affichage de graphique en temps réel Service web Node.JS recueillant les données des lectures • • • Réception des données sur les patients Stockage des données sous MongoDB Présentation de graphique en temps réel Architecture de l’application Android Interfaces de l’application Android Interfaces de l’application Android Architecture du service web Gestion des lectures provenant des capteurs du bracelet Le bracelet soumet des données à intervalle régulier, mais différent pour chaque bracelet. • (Ex. Accéléromètre au 32 ms vs Rythme cardiaque au secondes) L’utilisation des Observables (Rx.Java) permet contrôler le flux des données. On ne veut pas nécessairement les accélérations au 32ms, mais avoir un échantillon à intervalle régulier (modifiable par l’activité). Processus de d’abonnements aux événements du bracelet et stockage des données Contraintes associées à la gestion des données La consommation des données du bracelet et son stockage doivent être plus courts que l’intervalle entre les soumissions des données en tampon. • • • • Il est impératif que le stockage soit rapide pour ne pas bloquer les événements des Observables sous Rx. La récupération des données ne doit pas dépasser l’intervalle du minuteur qui exporte les données. Plus les données sont soumises rapidement, plus le graphique web sera fluide. La latence réseau ne peut pas être contrôlée par notre application. Il y a donc une variable qui doit être considérée. Gestion du niveau de signal Bluetooth La gestion du niveau de signal Bluetooth permet la détection de l’affaiblissement du signal et d’avertir le patient sur le bracelet. • • • L’intensité limite diffère selon l’appareil et doit donc être réglé manuellement. Bluetooth Low Energy non fonctionnel sous Lolipop (Android 5) L’intensité varie rapidement, donc les notifications de signal faible sont reçues régulièrement à une distance limite. Gestion des notifications Le processus de notification se fait en 3 temps. • • • • Utilisation de Google Cloud Messaging Récupération du jeton depuis Google Enregistrement du jeton sur le serveur Réception d’un message en provenance du serveur Contraintes du service web Node.js Afin de respecter les charges d’un système réel, nous nous sommes assurés: • Que le serveur puisse répondre à toutes les requêtes • • • • Venant de l’android (POST) Venant de l’application Web cliente (GET) Que l’application Web cliente puisse afficher les données reçues en temps réel Avoir un délai respectable pour l’envoi de notifications (Google Cloud Messaging) Développements à venir Gestion des profils qui lie les patients aux bracelets Gestion des préférences de notifications Analyse des données • • • Détection de chute Détection de changement d’humeur (GSR) Détection de la position (GPS) Intéraction avec les différents agents de l’appartement intelligent Actions plus complexes à partir des notifications Et bien d’autres… Conclusion Malgré les obstacles rencontrés tout au long de la session, nous sommes parvenus à développer un système centralisant les lectures de différents bracelets. • • • • • Les performances du service de gestion de base de données locale satisfont les attentes. La détection du signal Bluetooth fonctionne dans les délais prescrits. Le service web Node.js peut être chargé de requête de plusieurs applications en même temps et répondre dans des délais qui excède les besoins réels du contexte d’utilisation. Les notifications entre l’application web et le bracelet sont possibles et fonctionnels. Les futurs intégrations au système seront plus simple avec les changements structuraux apportés à l’application Android.