VI. AUDIO/VIDEO. MobileRobots MobileEyes, MobileSim, Mapper 3Basic, PeopleBot
VI. AUDIO/VIDEO
Afin de mieux communiquer avec son environnement, le robot PeopleBot dispose d'une camera PTZ couleur, d'un microphone et de hautparleurs ainsi qu'une série d'utilitaires permettant de les exploiter.
1) CONVERSION VIDEO
Le système dispose d'un « framegrabber » embarqué (du verbe to grab : saisir et de frame : cadre), c'est-à-dire d'un convertisseur des informations des capteurs CMD en images vidéos.
Les logiciels de traitement et de transmissions vidéos doivent par conséquent être lancés en tant que serveur sur le système, et ce afin de récupérer l'image convertie par le framegrabber.
2) MANIPULATION DE LA CAMERA
Reliée par liaison série, la caméra embarquée sur le robot est de type PTZ (Pan-Tilt-Zoom), c'est-à-dire que l'on peut effectuer dessus trois types de réglage :
–
– orientation panoramique ; inclinaison;
– zoom.
La classe ArVCC4 permet de manipuler la caméra à partir d'une application cliente, et ce sur les 3 axes de liberté possibles.
Il est à noter que la manipulation de la caméra dépend du micro-contrôleur ou du PC auquel il est relié, et en aucun cas du framegrabber (Cf. chapitre précédent). La gestion des mouvements de la caméra et la récupération des images sont ainsi deux actions complètement indépendantes.
Cette manipulation tridimensionnelle de la caméra permet d'obtenir une vue panoramique de l'environnement lors d'une phase statique du robot. Cette vue peut ensuite servir à l'orientation du robot (par suivi de ligne, par exemple) ou à la reconnaissance d'objet présent dans son champ de vision.
3) RECONNAISSANCE D'IMAGE
Avec le robot, est fourni l'utilitaire ACTS (ActivMedia Color Tracking System) qui permet de détecter une ou plusieurs couleurs prédéfinies dans l'image transmise par la caméra.
Ceci permet de reconnaître d'un objet au sein d'un environnement ou de gérer les déplacements du robot.
A) Phase d'entraînement
Avant d'exploiter ACTS, une phase d'entraînement est nécessaire afin de déterminer les couleurs à rechercher.
Cette phase est réalisée grâce à l'utilitaire EZ-Train, application cliente lancé en même temps que le serveur ACTS.
(Cet utilitaire ne peut être ouverte que sous environnement X-
Window.)
Pour cela, il propose une console de commandes ainsi qu'une fenêtre d'acquisition dans laquelle se placent les images issues de la caméra.
Avant de sélectionner une couleur, il est nécessaire de choisir un canal parmi les 32 possibles. Ces canaux indépendants correspondent chacun à la recherche d'une couleur précise.
Le canal choisi, on peut le nommer, mais aussi fixer le nombre de « tâches » - de 1 à 10 - à rechercher avec la couleur choisie.
Une fois ces réglages établis, on pointe la caméra vers la couleur à détecter et on la sélectionne avec la souris.
Si le résultat parait satisfait, il faut alors enregistrer le canal et passer à un autre.
Une fois que l'ensemble des canaux voulus sont enregistrés et la caméra correctement paramétrée, on peut alors enregistrer la configuration.
Attention : enregistrer une configuration n'enregistre pas les canaux associés !
B) Serveur ACTS
Une fois la phase d'entraînement effectuée et les canaux enregistrés, on peut alors lancé une version allégée du serveur ACTS – sans EZ-Train – qui tournera en arrière plan.
Ce serveur s'ouvre grâce à la ligne de commande suivante, où ma_config est une
configuration enregistrée dans la phase d'entraînement :
% ./acts -t ../ma_config
Cette version du serveur ne nécessite pas l'environnement X-Window et est par conséquent moins gourmande en ressources système.
Le port par défaut est le 5001.
A partir des informations contenues dans la configuration, ACTS va identifier, dans les images diffusées par la caméra, des « tâches de couleur» ou « blob », qui sont en fait des amas de pixels de la couleur désirée. (Les tâches inférieures à 10 pixels sont considérées comme du bruit et donc ignorées.)
Pour chaque tâches détectées, ACTS transmet alors des paramètres de taille et de position aux applications clientes connectées :
–
–
– centre de gravité (x,y) aire (nombre de pixels) bordures extérieures (haut, bas, gauche, droite)
Les bordures extérieures correspondent aux côtés un rectangle qui entoure la tâche.
C) Intégration dans une application cliente
La librairie ARIA dispose de classes écrite en C++ qui permet de récupérer les informations
émises par le serveur ACTS.
La classe ArACTS_1_2 permet de se connecter via TCP/IP et récupérer ensuite les informations des blob d'un canal donné.
La classe ArACTSBlob permet quant à elle de gérer les informations d'un blob.
Un exemple de cette utilisation est donné dans la fonction ArActionColorFollow. Cette fonction fait déplacer le robot en direction d'une couleur détectée par la caméra.
4) TRAITEMENT DE L'IMAGE
A) Exploitation des ressources
Le traitement de l'image, et a fortiori d'une vidéo, peut se révéler « gourmande » en ressources. En effet, compte tenu de la taille des données à traiter et de la vitesse de rafraîchissement de l'image, le traitement d'une vidéo peut accaparer une grande partie de la mémoire vive ainsi que de la charge du processeur.
Il peut donc être important de se demander si on souhaite exécuter un tel traitement à l'intérieur même de l'ordinateur embarqué du robot ou de l'extérioriser sur un PC distant, susceptible d'être plus amène de traiter l'information.
Deux solutions s'offrent à nous :
Le cas 1 montre un traitement effectué dans l'ordinateur embarqué, ce qui risque d'amoindrir les performances générales du système. Le résultat (position d'un objet, détection d'un mouvement...) peut alors être transmis
Pour le cas 2, le traitement s'effectue, non plus dans le robot, mais sur un PC distant, plus adapté à ce genre de travail.
Néanmoins, ce cas soulève un autre problème, car, comme la vidéo transite du robot vers le
PC, cela risque d'augmenter la charge du réseau et d'affecter la bande passante. Ce problème peut
être réglé en surdimensionnant le débit du réseau.
B) Librairies
Deux librairies en C++ sont disponibles pour la récupération et le traitement de l'image :
VisLib de la société ActivMedia Robotics/MobileRobots, Inc. et OpenCV de la société Intel.
La librairie Vislib ne fonctionne que sous Linux, et se révèle adéquate pour une application embarquée.
La librairie OpenCV, plus complexe, fonctionne uniquement sous les architectures Intel et le système d'exploitation Windows.
5) SYNTHESE VOCALE
Les buzzers disponibles sur le robot PeopleBot peuvent servir à un module de synthèse vocale, c'est-à-dire l'imitation de la voie humaine par une machine.
Ceci pourra permettre d'améliorer l'IHM avec un support non plus uniquement visuel (écran d'un ordinateur) mais également auditif.
Un application concrète peut être lors de la rencontre avec un obstacle, que le robot puisse
« exprimer » une requête (polie, bien entendu) afin que, si l'obstacle est humain, il s'écarte pour laisser le robot passer.
6) RECONNAISSANCE VOCALE
Le robot PeopleBot dispose de deux microphones, situés de part et d'autre du sommet. Il peuvent être utiliser afin d'écouter les bruits issus de l'environnement du robot, mais également dans le cadre de reconnaissance vocale, c'est-à-dire la traduction en commande d'un ordre formulé vocalement.
Cet aspect complète parfaitement l'IHM auditif commencée avec la synthèse vocale.
Une des applications les plus utiles pourrait la reconnaisse par le robot de la phrase « stop » en tant que formule d'arrêt d'urgence.
7) TRANSMISSION DU SON ET DE L'IMAGE
Les images de la camera sont transmises à un « framegrabber », applicatif logiciel qui permet la conversion des données issues de la caméra en image vidéo exploitable.
Le logiciel SAV (Server Audio Video) est destiné à restituer les images issues de la caméra, mais aussi les sons recueillis par les deux microphones dont dispose le robot. Une fois le serveur
SAV lancé, il possible de visualiser les images grâce au client SAV ou tout autre logiciel incluant la vidéo tel que MobilEye.
Cependant, pour transmettre la vidéo à un client distant, il est nécessaire de passer par l'intermédiaire d'une application serveur dédiée basée sur ArNetworking. Ce serveur, grâce à la classe ArHybridForwarderVideo, récupère les images sur le serveur d'image puis les met à la disposition à tous client qui souhaite s'y connecter.
La récupération des images peut être, par exemple, au centre d'un système autonome de surveillance d'un entrepôt ou plus généralement d'une entreprise en dehors de sa période d'activité.

Enlace público actualizado
El enlace público a tu chat ha sido actualizado.