RobAIR




 * UE/Module: Projet innovant de RICM4 option CM ou SR
 * Enseignant: Didier Donsez, David Eon, Olivier Richard, Sophie Chareyron, Sylvain Miermot (président du LOG)...
 * Élèves: 2 RICM4 (Florian FOURRURE, Simon BISCH), 1 ERASMUS RICM (César VICENTE VALVERDE), 2 3I4, 3 Mat4

Description
Vidéo de présentation @ Ubimob 2012 sur Youtube http://www.youtube.com/watch?v=qa5S6LmoEy8

Les robots de télé-présence auront d'ici peu énormément d'applications:
 * travailleurs à domicile participant aux poses-café (50% d'un réunion se fait devant la machine à café avant celle-ci)
 * visite de musée pour personnes âgées ou fragiles isolées (campagne, banlieue, MAD, HAD, ...)
 * insertion sociale des enfants bulles (participation aux anniversaires de copains, fêtes de famille, ...
 * visite familiale des personnes âgées en maison de retraite
 * intervention d'experts à distance sur site sensible (salle blanche, nucléaire, fablabs ...)

Ces robots sont déjà au catalogue de fabricants et des projets DIY existent déjà
 * Jazz de Gostai
 * http://www.robotshop.com/ca/robots-guides-telepresence-1.html
 * http://www.semageek.com/diy-fabriquer-un-robot-de-telepresence-sparky-jr/

L'objectif du projet est la réaliser un robot de télé-présence "open-source" et d'une IHM distante pour le pilotage

Les fonctionnalités attendues sont
 * réservation des robots (OAR)
 * pilotage automatique ou semi-automatique (graphe de chemins prédéfinis)
 * barrières virtuelles (cartographies des pièces)

Expérimentation

 * Visite à distance de l'expo Fablab au CCSTI de Grenoble

Matériel

 * Base de la plateforme robotique 3I
 * Base de robot aspirateur Roomba
 * Base de robot aspirateur HKoenigSWR
 * Base de Voiture Radiotélécommandée (voir Arduino controls cheap RC car transmitter, How to convert (almost) any 27 or 49 MHz RC Car into a Robotic car et le RX2/TX2)
 * Robot Wifibot (voir Olivier Aycard, UFR IMAAG)
 * 2 webcams + servomoteurs + Pan/Tilt_Bracket
 * Arduino ou STM32 Discovery
 * Carte ARM11 embarquée (Tegra, Raspberry Pi)
 * XBox Kinect
 * Table Androïd
 * 2 dongles WiFi
 * capteurs distance (ultrason), contact, ...
 * pointeur laser
 * Gyroscope WiiMotion+ (I2C)
 * Lidar

Logiciels

 * Clients SIP open source
 * |linphone
 * jitsi


 * Serveurs SIP open source
 * OpenSIPS
 * Asterisk


 * OpenCV (pour le face tracking et l'orientation automatique des cameras et du robot)
 * OpenNI
 * OAR
 * GStreamer
 * FreeRT OS
 * Robot Operating System (ROS)
 * Urbi

Structure

 * Modelage (Polycaprolactone)
 * Makerbot' Thing-o-Matic
 * Plateforme d'usinage GI NOVA
 * Fablab CCSTI

Fonctions requises

 * 1) Doit comporter une base mobile commandée à distance par le pilote.
 * 2) * hypothèse : sol plat sans obstacles (pas de tapis, pas de marches)
 * 3) * vitesse inférieure à celle d'un marcheur (<<5 km/h)
 * 4) Système de sécurité type "homme mort"
 * 5) * le robot doit être inerte quand le pilote n'est pas aux commandes (ex. perte de la communication, ou pilote qui s’absente de son poste de pilotage)
 * 6) Doit permettre une transmission audio et vidéo bidirectionnelle.
 * 7) * la qualité de la transmission doit permettre un dialogue fluide entre le pilote et ses interlocuteurs distants
 * 8) Autonomie en énergie d'une heure ou plus.
 * 9) * prévoir un système de rechargement
 * 10) Transfert des données par réseau Wifi (2.4 GHz et/ou 5Ghz)
 * 11) * un réseau dédié à l'application "téléprésence" est acceptable
 * 12) Bouton d’arrêt d'urgence accessible.

Fonctions souhaitables

 * 1) Bonne qualité de l'audio, même en environnement bruité.
 * 2) * le pilote peut porter un casque/micro
 * 3) * coté robot : micro directionnel, annulation d'écho, "beamforming", amplificateur et haut parleur de qualité
 * 4) Capacité à transiter d'un point d'accès Wifi à un autre sans interrompre la communication.
 * 5) * le "roaming" n'est pas bien géré par tous les modèles de point d'accès
 * 6) * expertise : association Grenoble Wireless
 * 7) Détection anti-collision.
 * 8) * prioritaire sur les ordres du pilote
 * 9) Bonne visibilité de l'écran dans des conditions d'éclairage variables
 * 10) * Dalles IPS ? Ecran transflectif ?
 * 11) Systèmes d'aide à la navigation pour le pilote.
 * 12) * caméra de recul
 * 13) * caméra panoramique pointées vers le sol pour les manœuvres précises
 * 14) * lidar ou sonar
 * 15) Ensemble caméra/écran orientable.
 * 16) * regarder vers le haut ou le bas
 * 17) * plus rapide et naturel de tourner la "tête" sans avoir à tourner le robot en entier
 * 18) Matériel et API extensible afin de remplacer la caméra standard et la prise de son par des interfaces plus exotiques.
 * 19) * caméra thermique, ou caméra multispectrale
 * 20) * "oreille ultrason", ou micros orientables
 * 21) Capacité du robot à se garer et à se mettre en charge de façon autonome.
 * 22) * le pilote doit amener le robot manuellement a proximité d'une station de charge
 * 23) Possibilité de créer des barrières virtuelles pour interdire la circulation de robots de téléprésence dans certains lieux
 * 24) * utilisation de mires fiduciaires collées au plafond ?
 * 25) * barrières infrarouge (comme le Roomba) ?
 * 26) * barrière électromagnétique ?
 * 27) Localisation du robot sur une carte du lieu.
 * 28) * permet au pilote de naviguer dans un environnement qu'il ne connait pas forcément
 * 29) * utilisation de balises active, ou marqueurs passifs
 * 30) * l'impact sur le lieu et le cout de l'infrastructure de localisation doit être minimal

Fonctions optionnelles

 * 1) Logiciel libre et multi-plateforme pour le pilotage
 * 2) * prends en charge la compression/décompression vidéo et audio, l'affichage, l'authentification du client, le cryptage de la liaison avec le serveur, la configuration de l'interface du pilote (clavier, joystick souris, manette de console, Wiimote, etc)
 * 3) * [client libre] <-- internet --> [serveur] <-- réseau privé --> [robot]
 * 4) Passerelle pour la compatibilité avec les logiciels de visioconférence courants.
 * 5) * [logiciel propriétaire] <-- internet --> [passerelle][serveur] <-- réseau privé --> [robot]
 * 6) * Skype comme cible prioritaire (besoin d'un plugin pour gérer les commandes de pilotage)
 * 7) * MSN comme cible secondaire
 * 8) Base type holonomique pour un déplacement facilité en espaces restreints.
 * 9) * attention, certaines roues holonomique (mecanum wheel et omni wheel) vont provoquer des vibration lors du déplacement qui vont dégrader l'image et l'expérience du pilote
 * 10) Hauteur de l'ensemble caméra/écran ajustable par le pilote.
 * 11) * permet au pilote de communiquer au même niveau que son interlocuteur
 * 12) * hauteur minimum : 1m (communication avec des gens assis, ou des enfants)
 * 13) * hauteur maximum : 1m70 (hauteur typique d'un adulte, aller plus haut pose des problèmes de stabilité, particulièrement en cas d’arrêt d'urgence)
 * 14) * un vérin électrique semble tout indiqué
 * 15) Réalisation d'un simulateur de robot de téléprésence permet d'entrainer les pilotes en toute sécurité.
 * 16) * tutoriel pour apprendre à conduire tout seul et passer un "permis robot"
 * 17) * nécessaire si le grand public doit utiliser ces robots (ex. contexte d'un musée)
 * 18) Navigation autonome du robot.
 * 19) * pour retrouver automatiquement une station de charge
 * 20) * pour aller automatiquement à la zone de maintenance en cas d'avarie
 * 21) * pour se rapprocher d'un point d'accès Wifi en cas de perte de la liaison radio
 * 22) * pour aller automatiquement dans un lieu au choix sans avoir besoin de pilotage précis (pilote qui se contente de donner la destination)
 * 23) Capacité de déplacement dans les lieux désordonnés, ou à l'extérieur.
 * 24) * garde au sol variable
 * 25) * centre de gravité permettant une inclinaison du robot
 * 26) * roues adaptées
 * 27) * protection du robot contre les éléments (poussières et projection d'eau)
 * 28) Pointeur laser orientable pour que le pilote puisse désigner un objet à un interlocuteur distant.
 * 29) Capacité du robot à communiquer avec le bâtiment.
 * 30) * utiliser les ascenseurs
 * 31) * ouvrir les portes automatiques
 * 32) * allumer la lumière
 * 33) Fonctionnalités de réalité augmentée pour le pilote.
 * 34) * affichage du nom à coté du visage des personnes
 * 35) Interface basique de télémanipulation.
 * 36) * bras + pince pour pouvoir actionner un interrupteur, tirer une porte ou transporter un objet léger
 * 37) Interface cérébrale
 * 38) * utilisation de casques de type Emotiv EPOC ou Mindware.

Communication entre Fablabs
Plus pratique que la visioconférence traditionnelle quand il s'agit de travailler à deux ou plus autour d'une machine (ex. une fraiseuse) et qu'il faut se déplacer dans l'atelier.