Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
cours:plim:projet16_17:gr5:gr5 [2016/10/19 16:28] epersenda [Présentation du projet] |
cours:plim:projet16_17:gr5:gr5 [2017/02/17 16:40] (Version actuelle) epersenda [How-To install] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Projet Groupe 13 ====== | + | ====== Agora Move ====== |
==== Présentation du projet ==== | ==== Présentation du projet ==== | ||
Ligne 7: | Ligne 7: | ||
* Nom 2 : Mesnier Maylanie | * Nom 2 : Mesnier Maylanie | ||
* Créneau (AM ou PM) : PM | * Créneau (AM ou PM) : PM | ||
- | * Nom du Projet : Chronos -- Nom provisoire-- | + | * Nom du Projet : Agora Move |
=== Un scénario d'illustration du Projet === | === Un scénario d'illustration du Projet === | ||
- | Bob est une personne qui veut connaître le nombre d'heure qu'il a alloué dans sa journée entre travail, restauration et détente. Bob veut aussi une application simple qui va apprendre seule à reconnaître ce qu'il est entrain de faire même si ses habitudes changes. Pour ce faire bob installe l'application, renseigne son lieu de travail et le nombre d'heure journalière et hebdomadaire qu'il effectue ainsi que la localisation gps de son travail. L'application peut ponctuellement demander des informations à bob sur le type d'activité qu'il est entrain d'effectuer afin d'améliorer son système d'apprentissage. L'application peut signifier à bob qu'il a rempli son quota journalier d'heure. Bob peut à tout moment consulter un graphique qui lui indique la répartition horaire journalière des différentes activités. | + | Bob veut savoir si il y aura du monde à la plage à 4h cette après midi, pour cela il utilise notre application et lui indique la position de la plage et l’heure. Notre application lui renverra un taux de fréquentation et un taux de mouvement relatif au lieu demandé. |
+ | Le frère de Bob gère une grande infrastructure (ex: Centre commerciale) et voudrait consulter des cartes lui indiquant la fréquentation et le taux de mouvement à un instant donné dans son infrastructure afin d’améliorer la gestion de son infrastructure. Pour cela il donne à l’application la coordonnée gps de son infrastructure et le moment passé pour lequel il veut obtenir la carte et l’application lui retourne. | ||
+ | Toute ces données sont calculées à partir des informations récupérées par le GPS et l’accéléromètre des personnes ayant installé l’application. | ||
==== Matériel disponbile ==== | ==== Matériel disponbile ==== | ||
Ligne 25: | Ligne 27: | ||
* Capteurs: | * Capteurs: | ||
* capteur gps | * capteur gps | ||
- | * capteur wifi | ||
* accéléromètre | * accéléromètre | ||
* Liste des SDK et API pour l'accès à ces informations | * Liste des SDK et API pour l'accès à ces informations | ||
* Environnement de logiciel : Android | * Environnement de logiciel : Android | ||
* Version OS : 6.0.1 | * Version OS : 6.0.1 | ||
- | * Wifi: [[https://developer.android.com/reference/android/net/wifi/WifiManager.html|[[https://developer.android.com/reference/android/net/wifi/WifiManager.html]] | ||
* Accelerometre: [[https://developer.android.com/guide/topics/sensors/sensors_motion.html|[[https://developer.android.com/guide/topics/sensors/sensors_motion.html]] | * Accelerometre: [[https://developer.android.com/guide/topics/sensors/sensors_motion.html|[[https://developer.android.com/guide/topics/sensors/sensors_motion.html]] | ||
* GPS: [[https://developers.google.com/android/reference/com/google/android/gms/location/package-summary|[[https://developers.google.com/android/reference/com/google/android/gms/location/package-summary]] | * GPS: [[https://developers.google.com/android/reference/com/google/android/gms/location/package-summary|[[https://developers.google.com/android/reference/com/google/android/gms/location/package-summary]] | ||
- | * Location: [[https://developers.google.com/places/android-api/current-place|[[https://developers.google.com/places/android-api/current-place]] | + | * Maps: [[https://developers.google.com/maps/documentation/android-api/?hl=fr |[[https://developers.google.com/maps/documentation/android-api/?hl=fr]] |
+ | |||
+ | * Algorithme utilisé: | ||
+ | * Clustering (K-means) | ||
+ | * Apprentissage (SVM) (Prend en entrée les coordonnées GPS, la tranche horaire et la date et ressors le taux de mouvement et la fréquentation du lieu) | ||
+ | * Activité reconnue et utilisée: | ||
+ | * Position GPS | ||
+ | * Taux de mouvement renvoyé par l’accéléromètre | ||
====Conclusion sur la Faisabilité du Projet:==== | ====Conclusion sur la Faisabilité du Projet:==== | ||
- | * La récupération des données ne pose que peu de problème (tout passe par des APIs android, il y a juste l’API de google qui se rajoute). | + | * La récupération des données ne pose pas de problème. |
- | * L'on utilisera une approche incrémentale pour ne pas se retrouver confronter d'un coup à tous les effets de bords liés à l'utilisation des trois capteurs simultanément. | + | * L’affichage sur map se sert de l’API google maps |
+ | * On utilisera une approche incrémentale pour ne pas se retrouver confronter en même temps aux différentes approche clustering/machine learning | ||
+ | |||
+ | ==== Repository ==== | ||
+ | * Tout le code est disponible sur git à l'adresse suivante: https://github.com/maylme/ELIM_Agora_Move | ||
+ | |||
+ | * Le serveur a été développé avec nodeJS | ||
+ | * La base de donnée est une base de donnée MongoDb | ||
+ | * L'application téléphone est développé avec AndroidStudio | ||
+ | |||
+ | * Un APK est disponible à la racine du git | ||
+ | ==== Utilisation de l'application ==== | ||
+ | |||
+ | * Lancer l'application | ||
+ | * Déplacer la map jusqu'à la zone désirée | ||
+ | * Entrer la période pendant laquelle vous voulez les données (Exemple: 2017-02-17 et 09-30) | ||
+ | * Appuyer sur le bouton situé en bas à droite de l'écran pour afficher les différentes zones | ||
+ | |||
+ | ==== Modificiation pour utiliser un serveur local au lieu du serveur distant ==== | ||
+ | * Editer le fichier GetLocation.java à la ligne 60, remplacer l'adresse par l'adresse de votre serveur locale | ||
+ | * Faire de même dans le fichier MapsActivity.java à la ligne | ||
+ | ==== How-To install ==== | ||
+ | |||
+ | * Installer l'apk sur android comme n'importe quel APK | ||
+ | * Télécharger la base de donnée et le serveur | ||
+ | * Installer mongoDb 3.2 minium | ||
+ | * (https://www.mongodb.com/download-center#community) | ||
+ | * Choisir linux, votre version linux, téléchargez et installez | ||
+ | * Se mettre dans le dossier de la base de donnée | ||
+ | * Taper "mongod --dbpath . " | ||
+ | * Ouvrir un autre terminal | ||
+ | * Installer "npm" (sudo apt-get install npm) | ||
+ | * Se mettre dans le dossier du serveur | ||
+ | * Taper npm install | ||
+ | * Taper node server.js |