Projet Reseau - Multimedia : RobAIR



Documents pareils
Robot de Téléprésence

Robot WIFIBOT Lab V4. Lab V4.

Projet Robot Centaure

Manuel d administration de Virtual Box MANUEL D UTILISATION VIRTUAL BOX

Robot WIFIBOT Lab V3. 4 roues motrices

FORMATION MULTIMÉDIA LVE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

COLLEGE ADRIEN CERNEAU

Le Registre sous Windows 8 architecture, administration, script, réparation...

Formation Informatique. Utiliser les périphériques informatiques

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Sommaire. Leap motion Technologie Fonctionnement Langages utilisés Possibilités d utilisation... 4

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Tutoriel Papier sur le logiciel DVD Shrink

epowerswitch 4M+ Fiche technique

Guide de montage du PRisme. version 1.2.2

PODIUM_ e-station. E-STATION COMPONENT

Pour des informations sur d'autres documents fournis avec votre ordinateur, reportez- Recherche d'informations.

Guide d installation ATTENTION : A la découverte de votre téléphone

OpenText StreamServe Cours Customer Communication Management L essentiel

L utilisation du lidar terrestre en foresterie. Richard Fournier Département de géomatique appliquée

Logiciel PICAXE Programming Editor

GenIP 30i : Passerelle intelligente dédiée aux applications industrielles les plus critiques

Carte Relais GSM (Manuel Utilisateur)

كر اس الشروط الفني ة اخلاص ة

Guide Utilisateur du robot humanoïde NAO

epowerswitch 8XM+ Fiche technique

Concernant l'ordinateur portable, il utiliserait sa propre batterie qui lui confère une autonomie d'environ 4h.

Systèmes de conférence. Sennheiser vous propose des solutions globales performantes

Guide de démarrage rapide du TruVision NVR 10

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

ScoopFone. Prise en main rapide

Intelligence artificielle et les défis en robotique mobile et autonome

Aide - mémoire gnuplot 4.0

Guide d installation & de démarrage Gamme Aqua PC Version AquaPro

AUTOPORTE III Notice de pose

TERMINAL D AUDIO CONFERENCE ANALOGIQUE USB VOIP NOTICE

Prise en main rapide

Centrale d Alarme 32 zones sans fils

Education Delivery Intelligent Tool

ENVOI EN NOMBRE DE MESSAGES AUDIO

Détection des deux roues motorisés par télémétrie laser à balayage

Preliminary Spec Sheet

BAMOSONIC IT. - Mesure de niveau -

T E C S O F T 775,00 TTC 645,83 HT

V11. Release 1. Nouveaux appareils. Nouvelles fonctionnalités. Plus de flexibilité.

Reekin Timemaster Station météo

Pour les futurs développeurs Sommaire

GUIDE D UTILISATION. Informations importantes Toshiba FOLIO 100 Conseils pour une première utilisation, configuration et principaux usages

Centrale d alarme DA996

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

NOTICE D UTILISATION

Manuel de l utilisateur NXT 2.0

Thermomètre portable Type CTH6500

Sync-A-BOX et Duplicati. est une plateforme Cloud pour stocker et gérer vos données en ligne.

JOG : une approche haut niveau des systèmes embarqués via Armadeus et Java

La visio-conférence holographique : Pourquoi? Comment?

Surveillance de Température sans fil

Premiers Pas avec OneNote 2013

Tutoriel D utilisation. Du PGI Open line d EBP

Présentation Alfresco

Sybase High Avalaibility

Intrunet SI120/SI220 Pour une sécurité sur mesure

QoS Réseaux haut débit et Qualité de service

ENREGISTREUR NUMERIQUE 8/16 CANAUX AVEC SAUVEGARDE PAR PORT USB

Sommaire. Images Actives Logiciel libre développé par le CRDP de l académie de Versailles 2 Rue Pierre Bourdan Marly le Roi

Lenovo TAB A7-40/ Lenovo TAB A7-50

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Vivre avec Linux en dehors des ordinateurs

NovoSIP manuel de mise en service

Prise en main d une Cyberclasse

Version beta. Station Météo 12/11/2012. Réalisation d un Station Météo avec Webserver composée de capteurs Grove et d un module Wifi Flyport.

Date M.P Libellé Catégorie S.Catégorie Crédit Débit Solde S.B

Tutoriel première utilisation ICEM-CFD. Couche limite et modification du maillage en 2D

La programmation orientée objet et le langage C++

NOTICE D UTILISATION

Notice d installation des cartes 3360 et 3365

Tutorial NL220. Objectifs : Fournir un guide utilisateur pour NL220. Présenter une méthodologie efficace pour la création de projet

Alarme anti-intrusion

µrv : Realité Virtuelle

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

EmonCMS sur EWATTCH Cloud

Composition d un ordinateur :

LA TABLETTE, UN OUTIL POLYVALENT!

SYSTÈME DE SURVEILLANCE DE LA TEMPÉRATURE

Adaptateur secteur Manuel Boîtier (Optionnel) CD du pilote Carte de garantie mondiale Stylet (Optionnel)

Air-conditioner network controller and accessories

PRECAUTIONS DESCRIPTION DU PRODUIT

Guide d installation rapide

Merci d'avoir choisi notre système d'alarme intelligent. Veuillez lire ce manuel avant l'installation afin de la faire fonctionner correctement.

1. Généralités Certifications Ouverture du carton Contenu de la boîte... 3

Sonde de surveillance environnementale gamma

NiceLabel pour Services Microsoft Windows Terminal Serveur et Citrix MetaFrame

DVR08IP-8POE. DVR08IP-8POE DVR Série Neptune IP. NVR (Network Video Recorder) 8 canaux pour caméras IP avec 8 ports réseau PoE intégrés

Procédure de Migration de G.U.N.T.3 KoXo Administrator

F210. Automate de vision hautes fonctionnalités. Caractèristiques. Algorithmes vectoriels

Compte-rendu N 04 Réunion du 19/12/14

Windows 8 Installation et configuration

Transcription:

Projet Reseau - Multimedia : RobAIR MARIAGE Paul, LEVAYER David Le 7 Mars 2014 Table des matières 1 Introduction 2 1.1 Pourquoi ce robot?............................................ 2 1.2 Les pré-requis............................................... 2 1.3 Robot Operating System......................................... 2 2 Travail réalisé 2 2.1 Montage du robot............................................ 2 2.1.1 Montage des roues........................................ 2 2.1.2 Montage des batteries...................................... 2 2.1.3 Fixation des capteurs...................................... 3 2.1.4 Montage de la Kinect...................................... 3 2.1.5 Positionnement du Lidar..................................... 3 2.1.6 Vue finale du robot........................................ 4 2.2 Configuration du robot.......................................... 4 2.2.1 Paramétrage du sketch Arduino................................. 4 2.2.2 Descriptif et configuration des fichiers............................. 4 2.3 Etablissement de la documentation................................... 7 3 Conclusion 7 4 Sources 7 1

1 Introduction Le projet que nous avons réalisé au cours de notre 4ème année à Polytech Grenoble est un projet orienté robotique appelé RobAIR. Ce projet est une reprise des projets des années précédentes, réalisées par les promotions RICM4, ainsi que des étudiants de l école ENSIMAG de Saint Martin d Hères. Le projet RobAIR consiste à développer un robot de téléprésence, utilisant une plateforme de type Open-Source. Cette année, il est divisé en deux parties : une première partie correspondant au montage complet et à la configuration du robot en ré-utilisant les travaux des années précédentes, et une partie concernant le contrôle à distance utilisant une application à base de WebRTC. Nous parlerons ici de la partie montage et configuration. 1.1 Pourquoi ce robot? L objectif de ce projet est de réaliser un robot de téléprésence. Prenons par exemple une personne handicapée, qui aurait l envie de visiter un musée inadapté aux personnes à mobilité réduite. Grâce à RobAIR, elle pourra grâce à l application de l autre groupe controlé le robot que nous avons monté afin d effectuer cette visite. De même, un étudiant étant dans l impossibilité d assister à ses cours pour diverses raisons pourra d utiliser un robot disponible dans son établissement afin de ne pas prendre de retard. C est dans cette optique d accessibilité que le projet a été pensé, et que nous l avons réalisé. 1.2 Les pré-requis Le montage du robot nécessite différents composants : Une structure de robot. La notre a été designée par Didier Donsez, professeur et responsable de parcours RICM à Polytech Grenoble et fabriquée à l aide d une découpeuse laser par la FabLab présente à la Maison Jean Kuntzmann de Saint Martin d Hères Un système de propulsion de robot 24V de type Devantech RD02 Un contrôleur de moteur (livré avec le système de propulsion) Deux batteries 12V de la marque Yuasa Des capteurs ultrasons et infrarouges adaptés à Arduino Une Kinect ( pas utilisée dans notre projet, mais qui sera utilisée plus tard pour la création de map ) Une carte Arduino Mega 2560 1.3 Robot Operating System Robot Operating System, ou Robot OS, ou encore ROS, est un système d exploitation sous licence open source permettant de contrôler un robot. Il est développé par la société américaine Willow Garage, à l origine pour son robot PR2. Il peut s interfacer avec la plate-forme de développement pour la robotique Urbi2. Plusieurs robots sont compatibles avec ROS : Qbo3, Robotino, Nao4... ROS utilise la bibliothèque de traitement d image OpenCV pour la vision du robot. Plus d informations sur les bags à la page suivante : http ://wiki.ros.org 2 Travail réalisé 2.1 Montage du robot 2.1.1 Montage des roues Notre robot va utiliser un système de propulsion de robot 24V de type Devantech RD02. Nous avons donc monter ces deux roues sur le dessous de la base de notre robot grâce aux vis qui nous ont été fournies. Pour plus de stabilité, nous avons ajouté des roues multidirectionnelles à l avant et à l arrière, afin que le robot puisse bouger correctement. 2.1.2 Montage des batteries Les batteries que nous avons choisi d utiliser sont des batteries 12V de la marque Yuasa. Nous avons positionnées les supports de batteries sur la base du robot puis les avons reliées en séries via les connecteurs puis directement sur le contrôleur des moteurs. 2

Les roues sont donc alimentées par les batteries via la carte. De plus, les moteurs sont connectés directement à la carte, qui va envoyer l information à la tablette via le connecteur que nous pouvons voir sur la droite. 2.1.3 Fixation des capteurs Pour la suite du montage de notre robot, nous avons fixé l ensemble des capteurs qui seront utilisé sur notre structure. Nous avons deux types de capteurs différents : les capteurs infrarouges fixés sur la base, et les capteurs ultrasons fixés sur les cotés de la structure. Capteurs infrarouge Les capteurs infrarouge que nous avons utilisés sont de type Arduino commutateur du capteur infrarouge réglable détecter 3-80cm. Le commutateur du capteur infrarouge réglable est un ensemble de transmetteur et récepteur à l un des capteurs commutateur photoélectrique. Nous avons donc ajusté la distance de détection. Le capteur a une portée de détection de 3cm-80cm, ce qui correspond totalement à notre attente. Nous les avons donc fixés à la structure grâce aux bagues fournies avec les capteurs Capteurs ultrasons Notre robot va utiliser des capteurs ultrasons de type HC-SR04. Ce module dispose simplement de 4 pins de sortie : VCC, TRIG, ECHO, GND. Il est très facile à utiliser avec le microcontrôleur. Le processus complet est le suivant : Mettre la pin TRIG une impulsion de niveau haut (5V) durant au moins 10µs et le module démarre sa lecture. A la fin de la mesure, s il détecte un objet devant lui, la pin ECHO passe au niveau haut (5V) PulseIn(). La distance où se situe l obstacle est proportionnelle à la durée de cette impulsion. Il est donc très facile de calculer cette distance. Nous les avons collés à la structure sur les côtés du robot. 2.1.4 Montage de la Kinect Dans notre réalisation, nous n avons pas utilisé la caméra Kinect, mais comme elle sera utilisée dans les itérations suivantes pour créer la map, nous avons décidé de la positionner. Etant donné que la caméra Kinect va permettre la communication à distance, nous devons la placer sur le haut du robot, de façon à ce qu il est une vue globale de la pièce, juste au dessus du support de la tablette. Elle sera relié directement à la tablette via le hub USB. 2.1.5 Positionnement du Lidar Au cours du déplacement du robot, nous allons construire dynamiquement une carte représentant la pièce. Pour ce faire, nous avons besoin de placer le Lidar sur le dessus du support, juste au dessus de la Kinect. Le Lidar que nous avons utilisé est de type Capteur de Distance à Balayage Laser URG-04LX-UG01 Hokuyo. Il utilise un télémètre à balayage laser URG-04LX-UG01 Hokuyo. Nous pouvons grâce au Lidar indiquer la distance de 20 mm à 5600 mm (résolution 1 mm) dans un arc de 240º (résolution angulaire 0,36º). Il sera relié à la tablette directement via le hub USB. 3

2.1.6 Vue finale du robot 2.2 Configuration du robot Nous allons voir les fichiers les plus importants dans la manipulation et le contrôle du robot. Nous allons donc voir comment nous avons configuré le sketch Arduino, puis à quoi servent les différents dossiers et fichiers, puis comment les configurer de façon à ce que le robot marche correctement. 2.2.1 Paramétrage du sketch Arduino Dans un premier temps, nous allons régler les variables globales de façon à ce que notre nombre de capteurs dans le sketch corresponde bien au nombre de capteurs dans le robot. Pour cela, nous avons utilisé les variables INFRA NB et SONAR NUM. Ensuite, nous allons définir un tableau d entiers afin de répertorier les pins sur lesquels nous avons branché les capteurs infrarouges : const int INFRA_PINS[INFRA_NB] = {A0,A1,A2,A3,A4,A,A6,A7}; Pour les capteurs ultrasons, nous allons définir un tableau de NewPing, correspondant à des objets de type Ultrasonic Sensor : NewPing sonar[sonar_num] = { NewPing(27, 26, MAX_DISTANCE),//north left NewPing(2, 3, MAX_DISTANCE), //north center NewPing(4, 5, MAX_DISTANCE),//north right NewPing(6, 7, MAX_DISTANCE),//south right NewPing(8, 9, MAX_DISTANCE),//south center NewPing(10, 11, MAX_DISTANCE)//south left }; Les valeurs dans les NewPing correspondent aux numéros des pins sur lesquels nous avons branché les TRIG et ECHO de nos capteurs. 2.2.2 Descriptif et configuration des fichiers Dossier bags Dans ce dossier-ci se trouveront tous les fichiers d extension.bag. Les bags sont des formats pour stocker et rejouer les messages échangés. Ce système permet de collecter par exemple les données mesurées par les capteurs et les rejouer ensuite autant de fois qu on le souhaite afin de faire de la simulation sur des données réelles. Ce système est également très utile pour déboguer un système à posteriori. Donc chaque fois que nous allons effectuer un enregistrement de carte par le Lidar, nous allons sauvegarder les messages 4

dans ce dossier au format bag. Plus d informations sur les bags à la page suivante : http ://wiki.ros.org/rosbag Dossier launch Pour le lancement des différents scénarios de notre robot, nous avons besoin d utiliser des fichiers.launch. Un fichier launch permet de lancer plusieurs noeuds / applications ainsi que le noyau ROS en une ligne de commande. Un exemple de fichier simple pour la navigation par clavier : <launch> <!--Permet de deplacer le robot simplement au clavier--> <node pkg="robair_demo" type="kb_control.py" name="kb_control"/> <node pkg="robair_demo" type="motion_control_node.py" name="motion_control_node"/> <node pkg="robair_demo" type="arduino_sensors.py" name="arduino_sensors"/> </launch> On voit donc que dans ce launch, nous allons utiliser les noeuds kb control, motion control node et arduino sensors. Par la suite, nous pourrons complexifier ces launch en ajoutant des paramètres à nos noeuds pour réaliser les actions que nous désirons. Plus d informations sur les launch à la page suivante : http ://wiki.ros.org/roslaunch/xml Dossier maps Le dossier maps est l endroit où toutes les cartes générées seront enregistrées. La création de maps peut se faire soit avec le noeud hokuyo node soit avec le noeud hector slam qui existent pour les différentes versions de ros. Il existe des tutoriels assez développés aux adresses suivantes : http ://wiki.ros.org/hokuyo node http ://wiki.ros.org/hector slam Ainsi, lors de l exécution du noeud de création de map, nous pouvons créer et enregistrer un fichier de type.yaml représentant notre carte. L idée de fond de YAML est que toute donnée peut être représentée par une combinaison de listes, tableaux (de hachage) et données scalaires. YAML décrit ces formes de données (les représentations YAML), ainsi qu une syntaxe pour présenter ces données sous la forme d un flux de caractères (le flux YAML). Dossier msg C est dans ce dossier que nous allons positionner les fichiers qui définiront les noms de toutes les parties du robots : Fichier Command.msg Dans ce fichier, il a été défini tous les mouvements possibles de notre robot : int8 move uint8 speed1 uint8 turn Fichier encoderdata.msg Dans ce fichier, il a été défini les noms de nos deux roues : int32 wheelright int32 wheelleft Fichier InfraredPotholes.msg Dans ce fichier, il a été défini le nom des capteurs infrarouges. Les capteurs infrarouges ont été définis comme des booléens. Ce booléen est à Vrai si il y a un trou, à Faux sinon. Ils ont été appelés de la façon suivante : bool rear left bool rear center left bool rear center right bool rear right bool front left bool front center left 5

bool front center right bool front right Fichier UltrasoundObstacles.msg Comme le fichier InfraredPotholes.msg, il a été défini dans ce fichier les capteurs ultrasons. La valeur de ces capteurs correspond à la distance qu ils ont avec un obstacle. Ils ont été appelés de la façon suivante : uint32 north left uint32 north right uint32 north east uint32 south left uint32 south right uint32 south east Ainsi, si nous voulons construire un robot disposant de plus de capteurs, que ce soit infrarouges ou ultrasons, ou ajouter des mouvements, ce sont ces fichiers que nous allons modifier. Dossier rviz cfg Dans ce dossier, nous avons toutes les configurations du programme rviz, qui va servir à l affichage de la map que nous créera le lidar. Cependant, l extension est de type vcg, et l extension actuelle des fichiers de configuration du programme rviz est en.rviz. Il va donc falloir redéfinir un fichier de configuration. Dossier script Dans ce dossier, nous avons tous les fichiers de scripts qui tourneront sur notre tablette, et qui serviront au fonctionnement de notre robot. kb control.py Ici sont définies les touches qui servirons à faire avancer, reculer ou tourner le robot. Il faudra modifier ce fichier si nous voulons utiliser des touches différentes. motion control node.py Ce fichier correspond au noeud de contrôle du robot. Il faudra bien vérifier que le port a été configuré correctement et qu il soit branché au contrôleur. arduino sensor.py Ce fichier correspond au noeud de gestion des sensors. Il faudra aussi vérifier que le port des sensors est correct. Dossier src Arduino.py Dans ce fichier, nous avons toutes les fonctions qui vont gérer les capteurs. Les deux fonctions principales sont : process infrared line Cette fonction va boucler sur tous les capteurs infrarouges du robot, et mettre à jour la valeur de ces capteurs. process ultrasound line Cette fonction est similaire à la précédente, mais elle travaille sur les capteurs ultrasons. keylogger.py Ce fichier sert à l enregistrement des informations saisies au clavier. Il n est pas nécessaire de modifier ce fichier. motorcmd.py send order : Fonction d envoi d un ordre de déplacement au robot isfrontsensorsok : Fonction qui vérifie si aucun obstacle/trou ne gène le mouvement du robot vers l avant isrearsensorsok : Fonction qui vérifie si aucun obstacle/trou ne gène le mouvement du robot vers l arrière move : Envoi l ordre au robot de se déplacer Dossier util Dossier de configuration de l IP local et des ports séries. Nous n avons pas modifié ces différents fichiers, étant donné que le travail avait été fait les années précédentes et fonctionne correctement 6

Dossier voix Dans ce dossier, nous avons positionner tous les fichiers audio qui serviront au robot, lorsqu il se déplace et rencontre une personne ou autre. Les fichiers audio doivent être de type wav. 2.3 Etablissement de la documentation Au cours de notre projet, nous avons été étonné par le manque de documentation lié au montage et à la configuration du robot. Nous avons donc passé beaucoup de temps à effectuer le montage du robot, étant deux novices en robotique, et la prise en main du programme ROS était aussi ardue, bien que le code était particulièrement bien commenté. C est pourquoi nous avons décidé de réaliser une documentation regroupant la plupart des informations qui nous auraient été nécessaires, que ce soit pour le montage du robot ou sa configuration. Nous avons donc mis en ligne trois tutoriaux qui serviront aux années suivantes lors de la réalisation de leur robot : Un tutoriel pour le montage disponible à l adresse suivante : http ://air.imag.fr/index.php/proj-20132014robair2/how to create robair Un tutoriel pour l installation de ROS http ://air.imag.fr/index.php/proj20132014robair2/getstarted Un tutoriel pour la configuration des fichiers http ://air.imag.fr/index.php/proj20132014robair2/how to configure robair 3 Conclusion En conclusion, nous pouvons dire que les objectifs de notre projet sont globalement remplis : nous avons réussi à reconstruire le robot suivant l architecture qui a été définie auparavant, nous avons pu reprendre le code pour l adapter à notre propre configuration, nous avons pu afficher des nuages de point grâce au Lidar, et finalement réaliser une documentation que nous jugeons solide pour les prochains étudiants qui reprendront notre projet. 4 Sources Pour les packages ROS : http ://wiki.ros.org Pour les différentes définitions : https ://fr.wikipedia.org Pour les informations sur robair et les réalisations des années précédentes : http ://air.imag.fr/index.php/robair 7