**Projet Groupe 16** **Présentation du projet:** Nom 1 : Fliss Nidhal Créneau (AM ou PM) : AM Nom 2 : Randa ELTAHER Créneau (AM ou PM) : AM Nom du Projet : caveatDriver **Un scénario d'illustration du Projet** Détection des nids-de-poules par le bais de l’accéléromètre : Bob pose le téléphone mobile sur le tableau de bord de la voiture, et à chaque fois qu’il rencontre un nid-de-poule ou de dos d’âne, l’application va détecter ce changement brusque par l’accéléromètre, et il va l’enregistrer, ainsi, il va enregistrer sa position a travers le GPS pour la cartographiée. **Matériel disponible:** *Référence du SmartPhone: Samsung A5 *Caractéristiques techniques: http://www.samsungmobilepress.com/FileHome/Press/Mobile_Pdf/Galaxy%20A5_A3%20Press%20release.pdf *Résumé des fiches techniques en terme de ressources du SmartPhone (capteurs mais aussi Data collectés par le Mobile): *processeur: 1.2GHz Quad-Core Processor *GPS et accéléromètre. *Caractéristiques de l'OS et des environnements logiciels utilisables pour développer sur ce SmartPHone: OS: Android 4.4 (KitKat) **Ressouces utilisées dans le Projet** Liste des capteurs mais aussi Data collectés par le Mobile, utilisés pour le projet: * Accéléromètre et GPS * Liste des SDK et API pour l'accès à ces informations * Environnement de logiciel : Android studio IDE * Version OS : Android 4.4 (KitKat) * http://docs.opencv.org/2.4/doc/tutorials/introduction/android_binary_package/O4A_SDK.html Conclusion sur la Fisabilité du Projet: Le projet est-il faisable ? Oui, car normalement les appareils sont équipés d’un accéléromètre, qui va alors détecter les mouvements brusques et il va avec espoir mettre en valeur les variations de la vitesse, ainsi le mouvement vertical de l’appareil. Donc, l’utilisateur peut détecter facilement la présence soit d’un trou ou d’un dos d’âne. De plus, il y aura le GPS pour géo localiser l’endroit précisément et ensuite, il va mettre en évidence l’endroit exacte pour des autres utilisateurs, par exemple un autre conducteur afin d’éviter cet endroit ou la municipale pour la réparation et la solution du problème. **Algorithmes de classification et d'apprentissage :** Étant donné que notre projet vise à cartographier les nids-de-poules dans l’infrastructure routière tout en personnalisant le retours de la base de données à l'emplacement actuel de l'utilisateur. donc nous avons optés vers des algorithmes de classifications non supervisé notamment l'algorithme K-means, à fin de classifier les données brutes à des cercles plus restreints à fin de alléger le fardeau de mémoire sur les appareils mobiles. à cette fin on a implémenté un serveur NodeJs qui calcule en temps réel la distance entre l’utilisateur et les centroïdes des différents clusters établies et l'assigne au plus proche. **Sources** -Coude sources de l'application mobile :[[https://drive.google.com/file/d/0BwPnm-nraXx5MHNqZERuOHBweTg/view?usp=sharing]] - APK Application mobile : [[https://drive.google.com/file/d/0BwPnm-nraXx5VE5saFN0QXlUZXc/view?usp=sharing]] - Code source : Serveur K-MEANS node JS : [[https://drive.google.com/file/d/0BwPnm-nraXx5ajdnX1BGOXd4cVE/view?usp=sharing]] ** Installation de l'application ** -Télécharger le zip contenant l'apk de l'application mobile (ci-dessus) -Extraire et lancer l'installation de l'apk sur sur votre smartphone -installer NodeJs sur votre plateforme de ce site [[https://nodejs.org/en/download/]] -Extraire le dossier du serveur node js -ouvrez un terminal sur ce dossier -taper node index.js **L’architecture logicielle :** * Le côté client : Une application qui a pour but de localiser et détecter les nids de poules usant des données retrouvées des capteurs intégrés dans les appareils mobiles, notamment l'Accéléromètre auquel les valeurs on etait traiter par un filtre seuil afin d’éliminer les anomalies routières, ainsi que le capteurs de localisation GPS qui nous permet à un certain degré d'exactitude de localiser les nids de poules et ainsi persister les données réunies dans une base de données cloud. * La base des données (Firebase) : La base de données représente le point d'intégration entre les différents composants de notre architecture système. étant une base cloud elle nous permet donc un certain degré de liberté vis-à-vis l'extensibilité de nos services sans pour autan se soucier du coup de l'infrastructure impliqué.Ainsi, elle représente une base des données locale. * Le côté serveur : Nous avons opter pour l'algorithme d'apprentissage et classification K-MEANS, qui à pour effet de génerer des clusters se basant sur les similarités géospatiales des nids de pôles persisté dans la base de données et calcule en même temps la distance entre l’utilisateur et les différents centroïdes des clusters générés et l'assigne au cluster le plus proche ce qu'aura pour effet de limiter la visualisation des marqueurs sur la MAP de l’application la rendant ainsi plus lisible. Note Bene: étant donner que notre application mobile à subi un certain retard de publication, nous avons eu recours à un script de génération de données aléatoires,qui persiste encore dans notre base de données, mais nous avons aussi réussi à générer des données réels . **L’application :** La page d’accueil contient uniquement le lien a la carte MAP et le bouton qui permet l’accès a l’utilisateur pour enregistrer les données en cas d’une chute, ce qui signifie les valeurs captées par l’accéléromètre. A ce moment, l’appli va envoyer une liste des données représentant la valeur de l’accélération, et les valeurs de la localisation de la chute (longitude et latitude). {{:cours:plim:projet16_17:gr16:screenshot_2017-02-19-21-28-24.png?200|}} {{:cours:plim:projet16_17:gr16:screenshot_2017-02-19-21-30-48.png?200|}}