Giter Club home page Giter Club logo

pfe-voiture-cartographe's Introduction

PFE VOITURE CARTOGRAPHE

Introduction

Ce projet fut développé pour notre PFE à l'EPITA. Son but est d'automatiser la mesure des pentes et des dévers des trottoirs.

Installation

Ce projet utililse le framework ROS pour mesurer la pente et les dévers des trottoirs.

Pour pouvoir utiliser ce projet, il faut:

  • une raspberry pi (avec raspbian ou Ubuntu Mate);
  • y brancher un gyroscope MPU6050 en I2C et un GPS Ublox C94-M8P en USB;
  • y installer ROS kinetic;
  • cloner ce projet dans le répertoire de travail ROS;
  • cloner le driver ROS NMEA disponible ici dans le répertoire de travail ROS;
  • installer la carte et les capteurs sur un vecteur mobile (potentiellement motorisé), de façon à ce que le gyroscope soit droit.

Utilisation

Pour pouvoir lancer ce projet, il faut d'abord le compiler après l'avoir cloné:

$ cd ~/<repertoire_de_travail_catkin>/
$ catkin_make

puis lancer les commandes suivantes:

$ source devel/setup.bash
$ roslaunch buggy_sensor buggySensorLaunch.launch

ROS affichera alors des logs de manière régulière à l'écran:

  • 'STOP' -> Il faut mettre le vecteur motorisé à l'arrêt, jusqu'à ce qu'il affiche le log de ses mesures;
  • le log des mesures -> Une fois affiché, on peut déplacer le vecteur motorisé;

Structure

Le package buggy_sensor contient 4 noeuds ROS nécéssaires à la mesure des angles et des coordonnées GPS:

  • MPU6050_talker.py mesure les angles à l'aide du gyroscope MPU6050, en utilisant des formules mathématiques expliquées dans cet article. Il envoie les données mesurées sur le topic 'MPU6050Talker'.
  • buggy_mainListener.py récupère les données mesurées par le gyroscope et le GPS et attends l'interruption envoyée par le noeud buggy_waitInterrupt.py pour enregistrer ces mesures dans un fichier csv et les envoyer sur l'interface web. * buggy_waitInterrupt.py envoie un message sur le topic 'buggyInterrupt' de manière à un intervalle de temps donné afin de signifier au noeud buggy_mainListener d'enregistrer ses mesures. La période entre chaque mesure peut être modifiée dans ce noeud si besoin.
  • buggy_server.py envoie des informations sur la carte (RAM, CPU, disque) à l'interface web.

le dossier capteur contient:

  • le premier script , mesure.py (développé sans ROS) mesurant les angles et les écrivant dans un fichier CSV.
  • le script d'importation sur OpenStreetMap, importData.py, qui prend en paramètre un fichier CSV contenant des mesures et un fichier contenant un commentaire pour importer ces données. Pour plus d'informations, vous pouvez entrer la commande $ ./importData.py --help.

Visualisation des données

Afin de pouvoir se connecter avec le noeud ROS, l'interface Web à besoin d'établir une connection avec ROS_bridge qui est un module ROS.

Utilisation

$ cd ~/<repertoire_de_travail_catkin>/
$ source devel/setup.bash
$ roscore &
$ roslaunch rosbridge_server rosbridge_websocket.launch
$ roslaunch buggy_sensor buggySensorLaunch.launch
$ cd ~/../pfe_voiture_cartographe/viewer
$ npm start

Après cela, vous aurez un webserver qui tourne sur le port 8080 (par défaut) et une interface web qui écoute sur ce port. Consultez le README.md dans Viever pour plus de détails.

pfe-voiture-cartographe's People

Contributors

kndtime avatar byoman avatar antoinelebeury avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.