Drone roulant de Prévention des Risques Industriels
- Enseignant : Didier Donsez
- Etudiants M2PGI 2012 : Calvo Rodriguez Roberto, Morel Benoît
Description
Le Robot Wifibot est une plateforme mobile à 4 roues motorisées (ou 2 roues motorisées + 1 roue folle) munie d'une carte Atom exécutant un OS embarqué (Windows XP embedded ou Linux). Des dispositifs USB peuvent être montés sur la plateforme (caméras PTZ, capteurs...).
Ce type de robot peut servir à recueillir des informations dans des zones à risque pour des humains : feu dans un batiment, radiation, nappe de GPL en parking souterrain, Radon stagnant en sous-sol.
Ces informations peuvent être injectées dans un monde virtuelle d'avatars. Inversement, les capteurs et les usagers peuvent être simulés et représentés dans le monde réel augmenté. Pour cela, vous utiliserez DiaSuite.
Matériel
- Wifibot
- GPS K0 (fonctionne sur un PC mais pas sur la carte mère du Wifibot
- Webcam PTZ
- Capteurs
- gaz nocifs MQx (CO, GPL, Méthane) sur shield Arduino
- Geiger counter
- Télémétrie laser Lidar
Limites
- le GPS K0 fonctionne sur un PC mais pas sur la carte mère du Wifibot
- le port USB du Wifibot n'accepte pas plusieurs capteurs branchés simultanément sur un hub USB : peut etre une insuffisance de l'alimentation USB.
Logiciels
- Apache Felix
Architecture
Notre projet est découpé en 2 parties (un client et un serveur).
Un client pour l'affichage des données émises par les capteurs.
Le client est installé sur un pc portable qui sert de "télécommande" au robot Wifibot, lorsque le client reçoit des données elles sont affichées sur l'écran et ajoutées à un fichier de log.
Un serveur OSGI est installé sur le robot avec des bundles gérant la récupération des informations à partir des capteurs.
Nous avons choisi de faire un bundle par capteur. Un pour le GPS, un pour le compteur Geiger et un pour tous les capteurs connectés à l'Arduino. Ainsi qu'un bundle de communication et regroupement des informations.
Les autres bundles utilisent le service proposé par ce bundle. Et ce bundle envoit les informations reçues au client connecté et crée également un fichier de log des informations reçues par les capteurs.
Tous les bundles sont déployés, sur le robot Wifibot, sur un serveur Felix.
Manuel d'installation
Les sources du projet sont disponibles dans l'archive suivante : M2M-wifibot
- Serveur
Un serveur OSGI Felix est intégré dans l'archive avec les bundles nécessaires au bon fonctionnement du projet.
A savoir :
- le bundle fournissant la librairie RXTX : org.ow2.aspirerfid.rxtx-0.1.1-SNAPSHOT.jar
- les bundles pour la lecture des données des capteurs : fr.imag.wifibot.*.jar
La carte Arduino n'est pas reconnue automatiquement car elle se rattache à un port nommé ttyACM0.
Pour que la carte Arduino soit correctement reconnue, il faut éditer le fichier /etc/udev/rules.d/96-own.rules et ajouter la ligne suivante :
KERNEL=="ttyACM0", SYMLINK+="ttyUSB7"
Ce qui permet de lier le port ttyACM0 vers le port ttyUSB7 (vous trouverez un fichier 96-own.rules dans l'archive).
- Client
Le client recevant les données ne nécessite pas d'installation particulière.
Il suffit d'avoir Java sur sa machine.
Manuel d'utilisation
- Serveur
L'utilisation est assez simple, il suffit de démarrer le bundle appelé "Wifibot Master" qui va gérer la connexion avec le client et la transmission des informations.
Puis de démarrer le bundle qui nous intéresse, en fonction du capteur que l'on souhaite utiliser.
Le bundle va alors détecter le port dédié au capteur et ouvrir une connexion puis commencer à lire les informations.
Ces dernières seront alors envoyées au client par le biais du service fourni par le bundle "Wifibot Master".
- Client
Le client se lance comme une application java normale en passant en paramètre l'adresse ip du serveur (et le port si nécessaire).
Sources
Archive contenant le code source, le rapport, le serveur Felix et les bundles :