RobAIR/ProjetSpe Contribution RobAIR

De fablab
Aller à : navigation, rechercher

Avancement du projet

Séance du 22/05/2013

  • Fabrication de la base roulante sommaire dans l'atelier Robotronik Phelma
  • Prise de contact avec les étudiants du module Fablab
  • Récupération d'une partie du matériel : tablette Acer W7 Iconia, Arduino DUE, clavier bluetooth

Séance du 23/05/2013

  • Séance de cadrage du projet (sheme)

Séance du 25/05/2013

  • Câblage électronique
  • Capteur IR escalier (E18D50NK) la traduction des symboles chinois donne : rouge (+), vert (-), jaune (output)
alimenté en 5V
output sur Arduino adc
  • Capteur ultrasons
alimenté en 5V
in et out sur pin générique Arduino


Séance du 29/05/2013

  • Soutenance des projets 1 et 2

Séance du 31/05/2013

  • Copie de l’électronique de Rob'air sur sa copie
  • Familiarisation avec ROS, en particulier les programmes des projets précédants
  • Essai de portage de l'image Ubuntu 12.04 (32 bits qui tournais sur Atom) vers une tablette Iconia W700 (SSD/UEFI/GPT/64bits)
  • ubuntu 32 bits ne détecte pas l'EFI
  • GPT ne nous est pas aussi familié que MBR
  • Secure boot empèche d'utiliser Ubuntu avant la version 12.10, il faut le désactiver (obligation de mot de passe sur le bios)
  • Installation d'un système non UEFI en dual boot avec windows 8 UEFI
  • réduire la taille de la partition windows
  • ajout d'une partition ext4 pour ubuntu et une partition grub boot
  • installer linux sur sa partition avec le BIOS en mode legacy (non UEFI)
  • utiliser l'utilitaire boot repair (dans notre cas : mode avancé, cocher "partition/boot séparé")
  • Pour choisir entre W8 et Ubuntu, séléctionner dans le bios legacy ou UEFI au démarrage

Séance du 3/06/2013

Discussions des améliorations logicielles potentielles de RobAIR suite aux 2 projets précédents :

  • améliorer le SLAM et l'AMCL (Kinect seul) en utilisant une odométrie basée sur les capteurs MEMS (accelerometer, magnetometer, gyroscope) embarqués dans la tablette ou le smartphone.
  • améliorer le SLAM et l'AMCL en fussionner les cloud points de la Kinect et du Lidar en utilisant une odométrie basée sur les capteurs MEMS (accelerometer, magnetometer, gyroscope) embarqués dans la tablette ou le smartphone.
  • afficher les données de cartographie dans la tablette Android du pilote (il faut que Didier vous prete une tablette Android)* afficher les données d'obstacles (mur, marche) dans la tablette Android du pilote
  • faire un "dump" de la carte d'un lieu pour qu'elle puisse être partagée entre plusieurs robots.

Nous avons réussi à utiliser l'algo de slam (hector slam) uniquement avec le lidar et sans odométrie. Aussi, la révision 2 de la platforme du robot fonctionne aussi bien que la 1ère (celle présenté lors de la soutenance des équipes du modules FabLab).

Séance du 4/06/2013

  • Construction du robot RobAIR 2013 (révision 2) en utilisant les pots à fleurs
Nouvelle version du robot
Nouvelle version du robot
  • Récupération de sources des projets passés, notamment :
  1/ sources du serveur XMPP : https://github.com/SalemHarrache/robair-resource-manager
  2/ sources du robot le permettant de se connecter au serveur XMPP : https://github.com/SalemHarrache/robair-ros-pkg
 Installation du code ROS :
$ roscd 
$ git clone  https://github.com/fanguedj/RobAir robair_demo 
$ rosws set robair_demo 
$ source setup.bash 
$ rosmake robair_demo 
$ chmod +x robair_demo/scripts/*
  • Installation du SLAM sur la tablette
Pour lancer le SLAM :
$ roscd
$ roslaunch robair_demo/launch/slamLidarWithoutOdom.launch
  • Note : il semble impossible d'installer les packets ros/Ubuntu d'Hector SLAM sur un Ubuntu 32bits (packet inexistants), il faut réinstaller depuis les sources :
$ roscd
$ git clone https://github.com/tu-darmstadt-ros-pkg/hector_slam.git hector_slam
$ export ROS_PACKAGE_PATH="/home/fablab/ros_workspace/hector_slam":$ROS_PACKAGE_PATH
$ rosmake hector_slam
$ cd hector_slam
$ ls -l | grep -oE "hector.*" | xargs -l1 rosmake
$ cd ..
$ sudo mv hector_slam/ /opt/ros/fuerte/stacks/
quitter le terminal
  • Une capture du SLAM du 3ème étage de l'Ensimag. La salle fablab est désaxée par rapport au couloir, à cause d'une rotation sur lui-même du LIDAR, trop brutale.
Cartographie SLAM (hector-slam sans odom) du 3ème étage de l'Ensimag

Séance du 5/06/2013

  • Câblage du robot Rob'AIR : fonctionnement similaire au premier robot
  • Nouveau SLAM avec odométrie
  • Mise en oeuvre des sources des équipes précédentes de Polytech

Séance du 6/06/2013

  • Portage Arduino UNO vers Mega pour utiliser les 8 capteurs ultra-sons
  • Gérer les obstacles en marche arrière
  • Nœud odométrie en prévision du SLAM
  • Communication à distance (Polytech)
  • suivi SHEME n°2

Séance du 7/06/2013

  • Suite portage Arduino
  • Test de gmapping pour le SLAM avec odométrie (problèmes lors des rotations)
  • Première communication à distance, en utilisant les sources des groupes RICM (Polytech). Le robot peut se piloter avec une tablette android.

Séance du 8/06/2013

  • portage du code arduino UNO vers Mega OK. Il faut cependant rebrancher le câble USB à chaque fois.
  • Gmapping à toujours des problèmes avec l'odométrie et les rotations.
  • Amélioration de l'odométrie
  • Objectif pour lundi : faire une map et naviguer dedans.
Enregistrer une carte (/map) sur le disque 
rosrun map_server map_saver

Séance du 10/06/2013

  • Correction du bug de l'odométrie qui faisait planter Gmapping (theta était inversé)
  • Réalisation d'une carte avec Gmapping :
Enregistrement des données nécessaire au SLAM
$ roslaunch robair_demo scanAndOdom.launch
 Dans un autre terminal on enregistre ces données dans un .bag
$ roscd robair_demo
$ rosbag record -O bags/mydata /scan /tf
 Après avoir déplacement le robot, on lance Gmapping
$ rosparam set use_sim_time true
$ roslaunch robair_demo gmappingSeul.launch 
dans un autre terminal :
$ roscd robair_demo
$ rosbag play bags/mydata
Cartographie SLAM (Gmapping) du 3ème étage de l'Ensimag. Il manque la partie de droite (devant la Fablab)

On peut ensuite enregistrer cette map en un couple de fichier .pgm/.yaml pour pouvoir recharger a carte plus tard

$ roscd robair_demo
$ rosrun map_server map_saver -f maps/mymaps
  • l'interface web permettant le pilotage a était intégré dans le projet global (le Git). Elle affiche maintenant une image de la carte ainsi qu'un point représentant la position du robot.
  • La partie "mécanique" est quasiment fini : les deux pots du haut sont fixés ainsi que la Kinect et le LIDAR.
Montage de RobAIR : presque complet
RobAIR



Séance du 11/06/2013

  • Intégration de la webcam dans la page html de commande
Installation du serveur de webcam 
$ sudo apt-get install webcam
Créer/éditer le fichier de configuration 
$ sudo emacs -nw /etc/webcam.conf

Nous avons paramétrer le serveur webcam de façon à avoir un image toutes les 200ms avec une qualité de 640x480. Le fichier webcam.conf est donc :

[grab]
device=/dev/video0
text="Rob'AIR le %d/%m/%Y à %H:%M:%S"
width=640
height=480
quality=60
trigger=0
delay=0.2
[ftp]
dir=/home/fablab/ros_workspace/robair_demo/scripts/static/images
file=webcam.jpeg
local=1
Lancement de la webcam 
$ webcam /etc/webcam.conf
Page de commande du Rob'AIR avec la webcam
  • Carte complète de l'étage avec gmapping et les codeurs
Carte réalisée avec gmapping, LIDAR et codeurs


Séance du 12/06/2013

  • Utilisation de AMCL pour estimer la position du robot sur la carte
  • Test de la "Navigation Stack"
Nouvelle page de commande.
  • Ajout de 2 LED (24V et 5V) sur la tête
  • Installation de la Kinect pour test sans LIDAR
  • Utilisation de Gstreamer et Mpeg-server pour le streaming de la webcam

Cette solution est privilégié car plus fluide que la solution précédente.

Installation de Gstreamer 
$ sudo apt-get install -y gstreamer-tools
$ sudo add-apt-repository ppa:gstreamer-developers/ppa
$ sudo apt-get update
$ sudo apt-get install gstreamer1.0*
$ sudo apt-get install libgstreamer0.10-dev
$ sudo apt-get install libgstreamer-plugins-base0.10-dev
Installation de Mjpeg-server 
$ sudo apt-get install ros-fuerte-mjpeg-server
Installation de Gevent et des librairies utiles 
$ sudo apt-get install libevent-dev
$ sudo apt-get install python-all-dev
$ sudo easy_install greenlet
$ sudo easy_install gevent
$ sudo easy_install gevent-websocket
Install the Brown ROS packages 
$ svn checkout http://brown-ros-pkg.googlecode.com/svn/trunk/ brown-ros-pkg-read-only
$ rosws set brown-ros-pkg-read-only
Dans le répertoire brown-ros-pkg-read-only/distribution/brown_perception/gscam 
$ rosmake
Lancement du serveur (serveurWeb étant lancé) 
$ export GSCAM_CONFIG="v4l2src device=/dev/video0 ! video/x-raw-rgb,width=320,height=240,framerate=(fraction)30/1 ! ffmpegcolorspace"
$ rosrun gscam gscam
$ rosrun mjpeg_server mjpeg_server

Ensuite dans un navigateur internet : http://IP_TABLETTE:4243/commande

Séance du 13/06/2013

  • Kinect + hub-USB OK
  • Kinect + hub-USB + clavier bluetooth sur le hub ----> impossible
  • Sur la tablette commande : ajout d'un clic "va dans cette position"
  • Sur la tablette rob'AIR : move_base + AMCL pour déplacement automatique vers un point d'arrivé
  • Scripts d'automatisation pour lancer toutes les applications

Séance du 14/06/13

RobAIR en démonstration à l'école Clemenceau, Grenoble
RobAIR en démonstration à l'école Clemenceau, Grenoble
RobAIR en démonstration à l'école Clemenceau, Grenoble
  • Gestion de la sirène hurlante (12V DC, 110 dB)
  • Installation des haut-parleurs
  • Réinstallation de la tablette suite à une erreur
  • Démonstration de RobAIR aux élèves de l'école Clémenceau durant le Marché de Connaissances

Séance du 15/06/13

  • Modification de l’interface web pour la tablette de contrôle. Le robot peut miantenant tourner et avancer sur lui meme.
  • La tablette de pilotage affiche la position du robot, et on peut lui indiquer une destination.
  • Il semble qu'il y est toujours un problème, lorsque le robot est censé suivre la trajectoire donnée par ROS. RobAIR peut rester bloquer face à un mur ...

Séance du 17/06/13

  • Soutenance

Communication

  • Présentation SHEME du 12/06/2013

Fichier:Pres sheme.pdf

Flyer Media:Robair-flyer-recto-joined.pdf

  • Soutenance du 17/06/2013

à venir

Références

Modèle:Reflist